以下のコードを vc で実行します。
system("@echo off");
system("set a=3");
system("echo %a%");
system("pause");
「%a%」と表示されますが、「3」と表示する必要があります。
どうすれば作れますか?どうもありがとうございました。
以下のコードを vc で実行します。
system("@echo off");
system("set a=3");
system("echo %a%");
system("pause");
「%a%」と表示されますが、「3」と表示する必要があります。
どうすれば作れますか?どうもありがとうございました。
「tmp.bat」ファイルを作成します。
@echo off
set a=3
echo %a%
pause
そして、
system("cmd /c tmp.bat")
問題は、system() 呼び出しが、「a」変数が設定されていない「クリーンな」環境を作成することです (「echo %a%」呼び出しで)。
コマンドのシーケンスを「実行可能な」ものに変換するには、「VC」ではなく、特別なツールを使用する場合があります。
http://www.autoitscript.com/site/autoit/ および同様のツールを探してください。
まず、これらのコマンドはすべて、他のコマンドとは独立して実行されます。echo を試みる頃に%a%
は、set
for it (前回の への呼び出しからsystem
) は長い間忘れられています。cmd
つまり、まったく新しいウィンドウを開いて次のように入力した場合と実質的に同じです。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Pax> echo %a%
%a%
C:\Documents and Settings\Pax> _
おそらく、これらすべての指示を単一のcmd
ファイルに配置してから実行する必要があります。
system ("cmd /c c:\\full\\path\\to\my\\script.cmd");