2015-01-26 23 views
-3

解析我想給我的文件默認argv的,如果沒有在控制檯中給出。它不起作用,導致重複的參數名稱。 如果沒有給出參數,我想在同一個文件夾中使用固定的文件名。C++默認的argv如果沒有參數在控制檯

int main(int argc, char* argv[], char* argv[1]="test.ps1") 
{ 
    std::string target = _T(argv[1]); 
    std::string temp= std::string("powershell.exe -command \"")+target +std::string("\""); 

ShellExecuteA(0, "runas", "powershell.exe", temp.c_str, "", SW_HIDE); 
} 

回答

4
int main(int argc, char **argv) { 
    std::string const default_file = "test.ps1"; 
    std::string file = (argc < 2) ? default_file : argv[1]; 

    doSomethingWithFile(file); 
} 
+0

沒有工作: C:\腳本> CreateProcess.exe 「C:\腳本\ test.ps1」 的argc = 2 的argv [0] = C:\腳本\ CreateProcess.exe 的argv [1] = C:\腳本\ test.ps1 如果沒有給出PARAM: CreateProcess.exe 的argc = 1周 的argv [0] = C:\腳本\ CreateProcess.exe – Marabunta 2015-01-26 22:53:47

+0

@Marabunta我不不明白什麼不起作用,你發佈的文字是什麼。 – bolov 2015-01-26 22:56:27

+0

你讓我懷疑自己。我只是編譯和測試它。有用。 – bolov 2015-01-26 23:05:55