0

変数を含むファイル名とディレクトリは、プロシージャ内で評価されます。ファイルの名前を評価せずに変数としてバッチ保存するにはどうすればよいですか?

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%" 
4

1 に答える 1

0

あなたの問題とは少し異なるメニューをバッチで作成しました。

ファイルごとに 1 つの変数が必要です。最も簡単な方法は、名前をインクリメントすることです:

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!
)

私のバッチメニューを見たい場合は、私に連絡してください。

于 2013-04-10T15:15:21.690 に答える