A site for solving at least some of your technical problems...
A site for solving at least some of your technical problems...
As I am working on wpkg, a tool to build and manage advanced packages, I encounter problems running MS-DOS scripts. I am not the strongest in that realm. I have been working with Unix scripts for a little over 15 years and MS-DOS scripts are so limiting...
Anyway, to run a batch file, you need to write a script in a file that ends with .bat and to make sure it gets run properly, you want to run it using the %COMSPEC% command using the /c flag.
If parameters to the command include spaces, you want to place those parameters between double quotes. Although some commands are capable of transforming multiple command line parameters in a single filename, but it is really not safe when running abitrary commands from another software.
Example:
%COMSPEC% /c run-this-command.bat "this is a path with spaces"
Now, what do you do if the batch command itself includes a space (or has a path with a space)? You also have to quote the command, but you must also have to quote the command and its parameters because the /c command option accepts one parameter if it starts with a quote.
Now the result looks funny since you have two double quotes at the beginning and two at the end.
Example:
%COMSPEC% /c ""run this command.bat" "this is a path with spaces""
As you can see, the parameter after the /c starts and ends with two double quotes. This is how you quote a command line or program that you want to run with COMSPEC when this one (or the path to this one) includes one or more spaces in its filename.
Recent Posts on The Linux Page: