任务是使用 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 开关?

最佳答案

运行

wmic process call create /?

获取有关原因的信息
wmic process call create "c:\folder\app.exe","c:\folder"

应该管用

关于windows - WMIC:如何在特定工作目录中使用 **process call create**?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24658745/

10-15 13:35