比如bat文件中的命令是del D:\1.txt
bat文件存放如D:\
用ShellExecute该如何执行?
ShellExecute(HWND_DESKTOP, "open" , "cmd", "D:\1.bat", NULL, SW_HIDE);
这样对吗?可是执行不了如果bat文件中是个ping 命令,然后将ping的结果写入一个txt文件,又该如何写呢。
bat文件存放如D:\
用ShellExecute该如何执行?
ShellExecute(HWND_DESKTOP, "open" , "cmd", "D:\1.bat", NULL, SW_HIDE);
这样对吗?可是执行不了如果bat文件中是个ping 命令,然后将ping的结果写入一个txt文件,又该如何写呢。
ping 172.20.20.2 >> c:\test.txt
比如:
sprintf(lpszCmd, "/c %s","G:\\My Project\\jm.bat >> D:\\hello.txt"); ~~~~~~~~~~~~~~~~
ShellExecute(NULL, "open" , "cmd", lpszCmd, NULL, SW_HIDE);
My Project中有空格,发现执行不了,是不是我哪里写错了。
sprintf(lpszCmd,"/c \"%s\"","g:\\my Project\\jm.bat >> d:\\hello.txt");
ShellExecute(NULL, "open" , "cmd", lpszCmd, NULL, SW_HIDE);有空格的参数用引号引起来就可以执行了:)
这样好像不行阿,得在g:\\my Project\\jm.bat 这里加引号吧。
还有
sprintf(lpszCmd, "/c %s","\"G:\\My Project\\jm.bat\" >> \"D:\\in stall\\hello.txt\'"); ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
ShellExecute(NULL, "open" , "cmd", lpszCmd, NULL, SW_HIDE);如果写入文件hello.txt的路径也有空格的话,该怎么办,上面的处理好像不行啊:(
当你的路径是一个全路径时,先使用 GetShortPathName 得到一个短路径,然后再照上面的方法做就行了:)
如:ping 127.0.0.1>"d:\pragma files\a.txt"
放到一个字符串中可以这样:
CString str="ping 127.0.0.1>\"d:\\pragma files\\a.txt\"";
如果是bat的路径中存在空格
CString str="cmd.exe /c \"d:\\pragma files\\a.bat\"";
不好意思再问一下,这里的/c 和%s分别是什么意思?