How to run a process in the background without keeping a batch file open?
Solution 1:
Have you tried Hidden Start (HSTART)? (Costs $20)
I use it personally to run an hourly batch job with the window hidden. They also mention that you can run commands sequentially as a parameter (or by default, I assume) run asynchronously. I don't know how this will affect your contention on CPU, memory, or disk... but the software also gives you the option to wait some time before performing the action.
Solution 2:
To self-hide already running script you'll need getCmdPid.bat and windowoMode.bat
@echo off
echo self minimizing
call getCmdPid.bat
call windowMode.bat -pid %errorlevel% -mode hidden
echo --other commands--
pause
All linked scripts can be downloaded and saved with whatever name you find convenient.
- The IEXPRESS solution - as arguments accepts only the command and its arguments.
Example usage:
call hidder.bat myBat.bat myexe.exe
call myexe.exe
- SCHTASKS - Again accepts only two arguments - the command and the arguments.Also checks if it's started with elevated permissions and if possible gets the PID of the process with WEVTUTIL command.
Example usage:
call SCHPhidden.bat "cmd /c myBat.bat" "argument"
- 'WScript.Shell' - the script is full wrapper of 'WScript.Shell' and every possible option can be set through the command line options.It's a jscript/batch hybrid and can be called as a bat.
Example usage (for more info print the help with '-h'):
call ShellRunJS.bat "notepad.exe" -style 0 -wait no
- 'Win32_ProcessStartup' - again full wrapper and all options are accessible through the command line arguments.This time it's WSF/batch hybrid with some Jscript and some VBScript pieces of code - but it returns the PID of the started process.If process id not hidden some options like X/Y coordinates can be used.
Example usage (for more info print the help with '-h').This will require the full path to the executable/script if it is not in the %path%
:
call win32process.bat "notepad" -arguments "/A openFile.txt" -showWindow 0 -title "notepad"
- The .NET solution . Most of the options of ProcessStartInfo options are used (but at the end I was too tired to include everything):
Example usage (for more info print the help with '-h'):
call ProcessStartJS.bat "notepad" -arguments "/A openFile.txt" -style Hidden -directory "." -title "notepad" -priority Normal