问题是这样的,今天我写了一个批处理文件,内容前面部分是这样的:- @echo off
- echo %~1|findstr /I |E ".c .cpp">nul
复制代码 我直接使用批处理不会出问题,但是当我用CreateProcess创建进程时会提示:findstr不是可执行的命令或批处理文件。我想系统环境变量是不会改变的,我就郁闷了。但我还是试了下:
set "_findstr=%windir%\system32\findstr.exe" 。我以为可以了,结果还是错误。于是我就直接echo %_findstr% 结果发现%windir%是个空值,只有\system32\findstr.exe,我就搞不懂了。没办法了,我只能使用绝对路径, C:\windows\system32\findstr.exe 于是成功。但是前面为什么会是空值,还请高手指点!
关于那个CreateProcess,我是用创建管道 CreatePipe的方式把命令行的输出重定向到界面程序上面去。大致的过程就是这样了。还请各位大大不吝赐教! |