WMIC: 如何在指定的工作目录下使用“process call create”命令?

7
任务是使用 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 命令的工作目录吗?

1个回答

12

运行

wmic process call create /?

获取有关此项的信息

wmic process call create "c:\folder\app.exe","c:\folder"

应该可以工作


谢谢MC ND,您的建议很好用。我尝试了wmic process call create /?,但是我无法理解屏幕上的帮助信息。它上面没有一个逗号。 :) - foxidrive
@foxidrive,抱歉,你是对的。我忘了提到它。是我的错。幸运的是,当使用错误的语法时,“wmic”很友好地建议正确的语法。 - MC ND
啊,谢谢。这很有用。编辑:我尝试了几个无效的命令,但是我无法获得语法方面的帮助。你能复制一下你用来获取帮助的命令吗?这可能是在未来让WMIC帮助我的有用知识。 - foxidrive
@foxidrive,我刚刚尝试了wmic call create "calc.exe" "c:\"来获取(抱歉,西班牙语Windows区域设置)Sugerencia: <lista_parámetros> = <parámetro> [, <lista_parámetros>] - MC ND
检测是否从git bash运行,然后使用当前目录重新启动CMD批处理脚本,if "x%PS1%x" neq "xx" ( wmic process call create "C:\path\build_driver.bat","%cd%" GOTO END ) - Kevin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接