小弟今天刚开始试着写bat文件,进行批处理,有个很简单的问题想请教各位以下为刚写的startup.dat,如运行C:\>startup.bat "a.txt" "b.txt"可批处理两个文件:@echo offset taskName=%1set taskName2=%2set tempclasspath=%CLASSPATH%set CLASSPATH=%CLASSPATH%;.\lib\dom4j-1.6.1.jar;.\*ToolKit.jar;java *ToolKit.*Code %taskName% %taskName2%set CLASSPATH=%tempclasspath%@echo但是如果我想我想批处理的文件个数不确定
比如运行C:\>startup.bat "a.txt" "b.txt" "c.txt" "d.txt" .... "*.txt"那bat应该怎么写呢?是用for循环吗?怎么用呢?
@echo off  
type %1  
type %2  
type %3  
type %4
。。?

解决方案 »

  1.   

    恐怕有点悬,用程序处理吧,用分隔符分开,然后在程序里面split就可以了。
      

  2.   

    bat里面好像能用goto循环的。一次输入一个文件名吧。或者,你可以尝试看看ant生成的脚本,看看人家咋弄的,也许有帮助。
      

  3.   

    java *ToolKit.*Code %taskName% %taskName2%你这个能运行么?
      

  4.   

    [code=BatchFile]@echo off
    setlocal enabledelayedexpansion
    set PRO_HOME=E:\temp\program
    set LIB_PATH=.;%PRO_HOME%\conf
    for /f %%i in ('dir %PRO_HOME%\lib\*.jar /b') do (
      set LIB_PATH=!LIB_PATH!;%PRO_HOME%\lib\%%i
    )
    echo ==================================================================
    echo java -cp %LIB_PATH% com.test.Main %*
    echo ==================================================================
    java -cp %LIB_PATH% com.test.Main %*
    echo on
    [/code]这里有个参考,有兴趣的话可以看一下,多外参数可以使用 %* 作为参数传给 Java 进程