问题
I want to use wmic Process call create to open a CMD at current working directory. But when I add "%~dp0" to specify directory the following command output nothing.
for /F "tokens=2 delims==; " %%I in ('wmic Process call create "cmd.exe"^,"%~dp0" ^| find "ProcessId"') do echo PID = %%I
As I know %~dp0 will end with \, so %~dp0 will be like C:\Users\.
If I remove \ It will works. E.g: The following command will work.
for /F "tokens=2 delims==; " %%I in ('wmic Process call create "cmd.exe"^,"C:\Users" ^| find "ProcessId"') do echo PID = %%I
How can I use wmic Process call create with dynamic working directory?
回答1:
I found the solution. I have to add a trailing dot (.).
%~dp0 to %~dp0.
for /F "tokens=2 delims==; " %%I in ('wmic Process call create "cmd.exe"^,"%~dp0." ^| find "ProcessId"') do echo PID = %%I
Read more: How to get the path of a batch script without the trailing backslash in a single command?
来源:https://stackoverflow.com/questions/51353917/wmic-how-to-use-process-call-create-with-the-current-working-directory