I have this wmic command which finds out the PID of my process and works fine from cmd, but refuses to produce output when executed in a bat-file:
wmic /output:process.pid process where (Name like '%java%' and commandLine like '%part-of-the-path%') get ProcessId
When I run it from cmd, it produces a file containing
ProcessId
19352
The info is followed by two blank lines. When I run it from a batch-file, it only produces a file with two blank lines.
I tried /output:filename, > filename and | more > filename, all with the same result.
Why is this? How to make the command produce output from the batch?
Answer
Just like most of programming languages, a batch file also has escape characters. % sign used in command line is an escape character in batch file and give the command a different meaning. It is actually looking for a variable named %java%.
To resolve this problem, use %% instead of % in batch file. To see more details and information on other escape character look here.
Following command should work in batch file.
wmic /output:process.pid process where (Name like '%%java%%' and commandLine like '%%part-of-the-path%%') get ProcessId
No comments:
Post a Comment