2

別のバッチからバッチ ファイルを作成したいと思います。では、元のバット内で実行せずに、新しいバット内にコードを記述するにはどうすればよいでしょうか? これまでの私のコードは次のとおりです。

SET var1=%~dp0
SET var2
for %%a in ("%cd%") do set var2=%%~na
echo bla %var1% bla >> build%var2%.bat

「bla」の代わりに、複数行のコードが必要です。これをアーカイブするにはどうすればよいですか?

編集:

今私のコードは次のようになります:

SET var1=%~dp0
SET var2
for %%a in ("%cd%") do set var2=%%~na

SET string = (
echo SET mdbname=%var2%
echo SET OfficeDIR=%%ProgramFiles(x86)%%\Microsoft Office\Office14
echo SET WorkDIR=%var1%
echo md build

echo copy %%mdbname%%.mdb build\%%mdbname%%.mda /Y
echo "%%officedir%%\msaccess.exe" /compact "%%WorkDir%%\build\%%mdbname%%.mda" 

echo "D:****.exe" "%%WorkDir%%\build\%%mdbname%%.mda" "D:\****** Key - Nicht weitergeben" "%%officedir%%"

echo copy "%%WorkDir%%\build\%%mdbname%%.mda" "%%ProgramFiles(x86)%%\*******" /Y
)
echo %string% >> built%var2%.bat

しかし、新しく作成されたバッチ内には、「ECHO ist eingeschaltet (ON)」としか書かれていません。/「ECHOがアクティブ(ON)です。」

編集2:

今はこのように見えますが、何も起こらず、ファイルも作成されません

SET var1=%~dp0
SET var2
for %%a in ("%cd%") do set var2=%%~na

(echo SET mdbname=%var2%
echo SET OfficeDIR=%%ProgramFiles(x86)%%\Microsoft Office\Office14
echo SET WorkDIR=%var1%
echo md build

echo copy %%mdbname%%.mdb build\%%mdbname%%.mda /Y
echo "%%officedir%%\msaccess.exe" /compact "%%WorkDir%%\build\%%mdbname%%.mda" 

echo "D:\TFS\RepV\RepV 6.1\ITPBuildTool61.exe" "%%WorkDir%%\build\%%mdbname%%.mda" "D:\TFS\RepV\RepV 6.1\ITPEAK.OLKey Private Key - Nicht weitergeben" "%%officedir%%"

echo copy "%%WorkDir%%\build\%%mdbname%%.mda" "%%ProgramFiles(x86)%%\Sage\Office Line\6.1\Addin\Work" /Y) > built%var2%.bat
4

2 に答える 2

2

すべての特殊文字を含むすべての行をエコーしecho​​、すべてエスケープします。
&|<>前にキャレットまたは引用符が必要です。
%2倍にする必要があります。

(
  echo @echo off
  echo echo This is batch2
  echo set var=abc
  echo echo %%var%%
  echo echo redirect ^> file2.ttx
) > build%var2%.bat
于 2013-11-06T16:17:26.757 に答える