任务是使用wmic process call create "c:\folder\app.exe"
启动程序,并app.exe
访问app.exe home folder tree
中自己的支持文件。
下面的批处理脚本说明了WMIC以静默方式更改工作目录的问题,因此无法找到支持文件。
此脚本创建名为one.bat
的第二个批处理文件,只需在同一文件夹中键入url.txt
文件,即可在控制台上显示www.google.com
。
使用wmic
创建流程时,wmic会静默更改工作目录,以便找不到one.bat
,如果我将完整路径指定为d:\abc\one.bat
,则one.bat
将启动,但它无法在其自己的文件夹中找到要输入的名为url.txt
的文件。
如果我将WMIC.EXE文件复制到同一文件夹,则会以同样的方式失败。
@echo off
set "folder=d:\abc"
cd /d "%folder%"
(
echo.@echo off
echo.type url.txt
echo.pause
)>one.bat
(
echo.@echo off
echo.www.google.com
)>url.txt
echo this will work to launch the one.bat but the working directory is wrong and the file can't be found
wmic process call create "%folder%\one.bat"
pause
echo this will not launch one.bat because it can't be found
wmic process call create one.bat
pause
echo this will not launch one.bat as the working directory is changed
copy "%windir%\system32\wbem\wmic.exe" .
.\wmic process call create one.bat
pause
是否有人知道将为此命令设置工作目录的WMIC
开关?
答案 0 :(得分:7)
运行
wmic process call create /?
获取有关此原因的信息
wmic process call create "c:\folder\app.exe","c:\folder"
应该有效