我試圖設置一個窗口的命令行環境變量(以幫助自動開始要求用戶輸入一個窗口過程),然後回聲回經由系統()。使用在C「設定/ P」 ++
#include <iostream>
using namespace std;
int main() {
system("set /p foo= foo=");
system("echo %foo%");
system("pause");
return 0;
}
一旦運行,我收到這樣的反饋:
富=酒吧
%FOO%
按任意鍵繼續。 。 。
對於程序的工作,我需要接收「酒吧」,%foo%的內容,但這不會發生。
奇怪的是,該代碼工作,如果直接輸入命令行。
C:\Users\JohnDoe>set /p foo= foo=
foo=bar
C:\Users\JohnDoe>echo %foo%
bar
爲什麼C++代碼不起作用?
編輯:
使用所建議的修改,具體如下:
#include <iostream>
using namespace std;
int main() {
system("set /p foo=\" Enter foo= \" & echo %foo%");
system("pause");
return 0;
}
返回此反饋:
輸入富=酒吧
%FOO%
按任意鍵繼續 。 。 。
使用下面的代碼工作,但打開第二個窗口:
#include <iostream>
using namespace std;
int main() {
system("set /p foo=\" Enter foo= \" & start echo %foo%");
system("pause");
return 0;
}
輸入富=酒吧 按任意鍵繼續。 。 。
然後在第二個窗口:
酒吧
測試您的建議,更多信息添加到問題。 – werd1002
這不起作用,因爲環境變量('%foo%')的命令行擴展立即發生,*在'set'命令運行之前。 Alf的版本,在其中運行另一個程序,將工作 - 「run_that_program」進程將看到環境變量。 –