Reputation: 10431
For the moment my batch file look like this:
myprogram.exe param1
The program starts but the DOS Window remains open. How can I close it?
Upvotes: 211
Views: 940766
Reputation: 2398
My issue was similar to this however I was needing to open a file located on OneDrive/Sharepoint using a bat file. I could easily open a file located on my local hard drive and I could could also open the Shared word doc (*.docx) from the command prompt by pasting in the URL. When pasting that same exact URL into a bat file Microsoft word would throw an error.
The error as I discovered thru trial and error was that the URL encoded characters needed to be replaced. My URL had spaces and so it contained %20 for each space within the URL. When attempting to load the URL via the bat file with these encoded characters Microsoft Word would state that it could not find the file.
Correct syntax to open a URL shared word document in Microsoft Word via a bat file
Start "title" WINWORD.EXE "https://domain-company.my.sharepoint.com/personal/user_Name/Documents/Documents/Folder Name/Contract Docs/Current/document.docx?web=1"
Syntax below throws an error due to %20 URL Encoded Character
Start "title" WINWORD.EXE "https://domain-company.my.sharepoint.com/personal/user_Name/Documents/Documents/Folder%20Name/Contract%20Docs/Current/document.docx?web=1"
Upvotes: 0
Reputation:
Loads of answers for this question already, however I am posting this to highlight something important:
Start "C:\Program Files\someprog.exe"
The above might cause issues in some windows versions as Start
actually expects the first set of quotation marks to be a windows title. So it is best practice to first double quote a comment, or a blank comment:
Start "" "C:\Program Files\someprog.exe"
or
Start "Window Title" "C:\Program Files\someprog.exe"
Upvotes: 9
Reputation: 1323045
From my own question:
start /b myProgram.exe params...
works if you start the program from an existing DOS session.
If not, call a vb script
wscript.exe invis.vbs myProgram.exe %*
The Windows Script Host Run() method takes:
Here is invis.vbs:
set args = WScript.Arguments
num = args.Count
if num = 0 then
WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
WScript.Quit 1
end if
sargs = ""
if num > 1 then
sargs = " "
for k = 1 to num - 1
anArg = args.Item(k)
sargs = sargs & anArg & " "
next
end if
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
Upvotes: 35
Reputation: 5776
Here is my preferred solution. It is taken from an answer to a similar question.
Use a VBS Script to call the batch file:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing
Copy the lines above to an editor and save the file with .VBS extension.
Upvotes: 0
Reputation: 1336
How to solve "space problem" and local dependencies:
@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe
cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe
exit
Upvotes: 17
Reputation: 143
If this batch file is something you want to run as scheduled or always; you can use windows schedule tool and it doesn't opens up in a window when it starts the batch file.
To open Task Scheduler
:
'cmd'
taskschd.msc
-> enterFrom the right side, click Create Basic Task
and follow the menus.
Hope this helps.
Upvotes: 0
Reputation: 3081
Use the start command to prevent the batch file from waiting for the program. Just remember to put a empty double quote in front of the program you want to run after "Start". For example, if you want to run Visual Studio 2012 from a batch command:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
notice the double quote after start.
Upvotes: 308
Reputation: 140753
You can use the exit keyword. Here is an example from one of my batch files:
start myProgram.exe param1
exit
Upvotes: 179
Reputation: 508
This is the only thing that worked for me when I tried to run a java class from a batch file:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
You can customize the start
command as you want for your project, by following the proper syntax:
Syntax
START "title" [/Dpath] [options] "command" [parameters]
Key:
title : Text for the CMD window title bar (required)
path : Starting directory
command : The command, batch file or executable program to run
parameters : The parameters passed to the command
Options:
/MIN : Minimized
/MAX : Maximized
/WAIT : Start application and wait for it to terminate
/LOW : Use IDLE priority class
/NORMAL : Use NORMAL priority class
/HIGH : Use HIGH priority class
/REALTIME : Use REALTIME priority class
/B : Start application without creating a new window. In this case
^C will be ignored - leaving ^Break as the only way to
interrupt the application
/I : Ignore any changes to the current environment.
Options for 16-bit WINDOWS programs only
/SEPARATE Start in separate memory space (more robust)
/SHARED Start in shared memory space (default)
Upvotes: 22
Reputation: 21
My solution to do this from the GUI:
Create a shortcut to the program you want to run;
Edit the shortcut's properties;
Change the TARGET
field to %COMSPEC% /C "START "" "PROGRAMNAME""
;
Change the RUN
field to minimized.
Ready! See how you like it...
PS: Program parameters can be inserted in between the two final quotation marks; the PROGRAMNAME
string can be either a filename, a relative or an absolute path -- if you put in an absolute path and erase the drive letter and semicolon, then this will work in a thumbdrive no matter what letter the host computer assigns to it... (also, if you place the shortcut in the same folder and precede the program filename in PROGRAMNAME
with the %CD%
variable, paths will always match; same trick can be used in START IN
field).
Upvotes: 1
Reputation: 26029
You should try this. It starts the program with no window. It actually flashes up for a second but goes away fairly quickly.
start "name" /B myprogram.exe param1
Upvotes: 20
Reputation: 391276
Look at the START command, you can do this:
START rest-of-your-program-name
For instance, this batch-file will wait until notepad exits:
@echo off
notepad c:\test.txt
However, this won't:
@echo off
start notepad c:\test.txt
Upvotes: 55