关于vc中的系统

时间:2012-05-15 08:56:46

标签: c++

我在vc。

中运行以下代码
 system("@echo off");
 system("set a=3");
 system("echo %a%");
 system("pause");

但它显示为'%a%',但我要求显示为'3'。

我该怎么做? 非常感谢你的帮助。

2 个答案:

答案 0 :(得分: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/及类似工具。

答案 1 :(得分:0)

首先,这些命令中的每一个都独立于另一个命令运行。当您尝试回复%a%时,它的set(从之前的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");