I need to check for certain processes (its a list of 20ish processes, so wont list them all), and record which ones are running. Then I need to kill them, run some other code, and finally reopen them… The code will only run successfully if all the processes have been ended.
I’d welcome any suggestions, or just someone to explain why my code doesn’t work.
What I’ve been doing, is using tasklist to check for each process, and write the results to a file, then I’m trying to remove the lines of the file where the process is not running (i.e. I get an “INFO:…” message)
I know that I have done something similar before, where I’ve taken each line of a file one at a time (in a for loop), replaced a string of text within it, and sent the edited line to another file (which is probably not the most efficient way of doing it, but it worked).
For some reason, I can’t replicate it now…
The code I’ve got (whch is failing) is
SETLOCAL ENABLEDELAYEDEXPANSION
cd\
for /f "tokens=* delims= " %%a in (somefile.txt) do (
set q=INFO: No tasks are running which match the specified criteria.
set r=%%a
set s=!r:%q%=!
echo %s% >>test.txt
)
If anyone knows of a better way to do what I need, I’m happy to change my plan, but it does need to be done through batch (CMD), or I’d be happy with some one fixing the above code at least.
Thanks
Try this code. Though I’m not sure if the output file matches the one you want. Make sure to surround the parameter with double quotes if it contains any space.
taskchk.cmd: