0

次のバッチファイルを作成しました。このバッチファイルは、参照されているファイル名に番号を段階的に変更して、100段落を.batファイルに書き込みます。

for /l %%N in (1 5 500) do (
echo cd /D "C:\batch"
echo set PATH=C:\batch; &PATH%
echo echo Simulation 'g=0.00%%N.pre' started...
echo call %SOLVERQSP%-fp 1 -nt 3 ^
"C:\batch\0.00%%N.pre" > "C:\batch\g=0.00%%N.out"
echo echo Simulation 'g=0.00%%N' finished...
echo echo.

問題は、%PATH%および%SOLVERQSP%コマンドが存在する場合、バッチファイルが作成されないことです。これらを削除すると、スクリプトは正常に実行されます。私がどこで間違っているのか、またはこれをどのように回避できるのかについての提案

4

2 に答える 2

0

あなたの場合、いくつかの引用符を使用し、キャレットを避ける必要があります

for /l %%N in (1 5 500) do (
  echo cd /D "C:\batch"
  echo set "PATH=C:\batch; %PATH%"
  echo echo Simulation 'g=0.00%%N.pre' started...
  echo call %%SOLVERQSP%%-fp 1 -nt 3 "C:\batch\0.00%%N.pre" > "C:\batch\g=0.00%%N.out"
  echo echo Simulation 'g=0.00%%N' finished...
  echo echo.
)
于 2012-10-23T09:45:42.457 に答える
0

%それらを2倍にしてエスケープするだけです:

echo set PATH=C:\batch;%%PATH%%
于 2012-10-23T08:35:46.987 に答える