1

以下のコードを vc で実行します。

 system("@echo off");
 system("set a=3");
 system("echo %a%");
 system("pause");

「%a%」と表示されますが、「3」と表示する必要があります。

どうすれば作れますか?どうもありがとうございました。

4

2 に答える 2

2

「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/ および同様のツールを探してください。

于 2012-05-15T09:01:26.297 に答える
0

まず、これらのコマンドはすべて、他のコマンドとは独立して実行されます。echo を試みる頃に%a%は、setfor 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");
于 2012-05-15T09:00:37.727 に答える