Run a batch file in a completely hidden way
I'm looking for some way to run a batch file (.bat) without anything visible to the user (no window, no taskbar name, .etc..).
I don't want to use some program to do that, I'm looking for something cleaner. I've found a solution that uses VBScript, but I don't really like using VBS, either.
Solution 1:
Solution 1:
Save this one line of text as file invisible.vbs
:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
To run any program or batch file invisibly, use it like this:
wscript.exe "C:\Wherever\invisible.vbs" "C:\Some Other Place\MyBatchFile.bat"
To also be able to pass-on/relay a list of arguments use only two double quotes
CreateObject("Wscript.Shell").Run "" & WScript.Arguments(0) & "", 0, False
Example: Invisible.vbs "Kill.vbs ME.exe"
Solution 2:
Use a command line tool to silently launch a process : Quiet, hidecon or hideexec.
Solution 2:
To Hide batch files or command files or any files.... Use Windows XP built in IExpress.exe
utility to build a .EXE out of the batch file. When using IExpress
make sure you check the run hidden option and check mark all the boxes about not showing anything. After you create your .exe place it in whatever run command folder you choose and you will never see it come up.
Solution 3:
Run the script via an at job without making it interactive:
at 11:00 script.bat
Another solution, if you don't mind installing something like Python, you could simply create a script and run it with pythonw
(the linked version for GUI operations). Since you aren't using any graphical APIs, the window will not show. Simply use calls to os.system()
and it will mimic a batch script, as it is the same as typing the strings into the command line.
Example:
import os
os.system("tasklist > C:\tasks.txt")
os.system("ipconfig /all > C:\netinfo.log")