batch:在for循环中评估变量的文件名

时间:2013-01-02 23:12:13

标签: batch-file filenames evaluate

正在评估包含变量的文件名和目录。如何在不对其进行评估的情况下将文件名称批量存储为变量?

EG:我的道路是:

"C:\Rare\Names in a File\%CD%\"
                              batchfile.bat
                              file.txt

我想在这个目录中运行一个脚本:

REM #####BATCHFILE.BAT#######

pushd "%dp0"
for %%A in ("C:\Test") do set EXEPATH=%%~A
for %%A in ("Test.exe") do set EXECUTABLE=%%~A
for %%A in ("%CD%") do set DIRNAME=%%~A
for %%A in ('dir /b /a-d "*.txt"') do (
SET FILENAME=%%~A
CALL :PROCEDURE
)
exit /b
:PROCEDURE
start /w "" "%EXEPATH%\%EXECUTABLE%" "%DIRNAME%\%FILENAME%" 

1 个答案:

答案 0 :(得分:0)

我已批量制作了一个菜单,与您的问题略有不同。

每个文件需要一个变量。最简单的方法就是增加名字:

var1=path1\exe1
var2=path1\exe2
var3=path2\exe1
var4=path2\exe2

在for循环中的每个变量上,您可以调用一个过程,该过程使用变量中的路径保存文件。

for ....(
   call :Var %path% %file%
)

:Var
set /a id+=1
set %id%.path=%1&& shift
set %id%.file=%1
goto:EOF

after this you could do

for ..(1,1,%id%) do (
   start !%id%.path!\!%id%.file!
)

如果你想查看我的批处理菜单,你可以联系我。