2013-03-12 152 views
0

我用下面的BIOS中的序列號在同一文件夾保存到一個文件的應用程序:C++ Qt和的WinExec - 保存CMD輸出特定的文件夾到文件

WinExec("cmd.exe /c wmic bios get serialnumber > sn.txt", SW_HIDE); 

我的問題是我怎麼能將文件保存到不同的文件夾? 事情是這樣的:

WinExec("cmd.exe /c wmic bios get serialnumber > /some_folder/sn.txt", SW_HIDE); 

我想盡組合\和/指定一個文件夾,但它不工作。

+0

請注意**'WinExec'函數在近20年前已經過時*,引入了32位Windows 95.'WinExec'是一個16位函數,僅支持向後兼容性。如[文檔](http://msdn.microsoft.com/en-us/library/windows/desktop/ms687393.aspx)所示,您應該使用['CreateProcess'](http://msdn.microsoft.com/zh-cn/ com/en-us/library/windows/desktop/ms682425.aspx)。 *請在繼續之前更改您的代碼! – 2013-03-12 10:29:13

+0

如果您使用Qt,則可以使用QProcess而不是WinAPI。 – 2013-03-12 11:22:06

+0

如何使用CreateProcess或QProcess完成相同的功能? – marko 2013-03-12 11:26:36

回答

2

我懷疑你只需要指定一個合適的相對路徑:

WinExec("cmd.exe /c wmic bios get serialnumber > drive:\\<path_to_folder>\\some_folder\\sn.txt", SW_HIDE); 

或你的情況看起來像你想你的程序的目錄.\<path>中指定的文件夾:

WinExec("cmd.exe /c wmic bios get serialnumber > .\\some_folder\\sn.txt", SW_HIDE); 

確保此文件夾在寫入前存在。否則,系統將找不到指定的路徑。

+0

您需要逃避反斜槓。 – sashoalm 2013-03-12 10:22:05

+0

是的,你是對的。編輯它 – 2013-03-12 10:31:36

+0

謝謝,我只是想相對路徑,並沒有把反斜槓之前的點... – marko 2013-03-12 11:35:15

相關問題