Sign in to follow this  
Followers 0

Run multiple DOS commands in one line

10 posts in this topic

Posted

I just stumbled across this sublime technique of concatenating DOS commands with &&, in order to run them on the same line.

EXAMPLE -- Does all of this in ONE execution of RunWait().. :)

  • set current drive to C:
  • change path to WINNT folder
  • collect the list of files there into a temporary file
  • open the file in your text editor
	RunWait( @COMSPEC & " /c C:&&cd \winnt&&dir>D:\temp\multi.txt&&D:\temp\multi.txt", "", @SW_SHOW )
Luigi likes this

Share this post


Link to post
Share on other sites



Posted

Pure awesomeness :)

Share this post


Link to post
Share on other sites

Posted (edited)

in dos what this does is the following:

Command A & Command B --> execute command A, then execute command B. (no evaluation of nothing)

Command A | command B --> execute command A, and redirect all it's output into the input of command B.

Command A && Command B ---> means execute command A, Evaluate the errorlevel after running Command A, and if the exit code (errorlevel) is 0, only then execute command B.

Command A || command B ---> execute Command A, evalutate the exit code of this command and if it's anything but 0, Only then execute command B.

command A >> outputfile.txt 2>&1 ---> means execute command A, and write the STDERR Output to STDOUT

examples:

dir c:\ & echo All done!

help | more

or

type c:\windows\system32\drivers\etc\hosts | find /I "Microsoft"

dir c:\windows || echo I can't find this directory c:\windows

dir>c:\file.txt 1<&2 (explain me why you see the dir command send it's output to the dosbox, while I clearly specify that I should output it to c:\file.txt......

if you want to read more about this look use command redirection operators

http://www.microsoft.com/resources/documen...n.mspx?mfr=true

--reason edit-- More examples of all commands :)

Edited by lordofthestrings

Share this post


Link to post
Share on other sites

Posted

Great! Thanks, lots, it's nice to have the whole picture :)

Share this post


Link to post
Share on other sites

Posted

I just stumbled across this sublime technique of concatenating DOS commands with &&, in order to run them on the same line.

EXAMPLE -- Does all of this in ONE execution of RunWait().. :)

  • set current drive to C:
  • change path to WINNT folder
  • collect the list of files there into a temporary file
  • open the file in your text editor
	RunWait( @COMSPEC & " /c C:&&cd \winnt&&dir>D:\temp\multi.txt&&D:\temp\multi.txt", "", @SW_SHOW )

 

I had to create and account to let you know that this info just turned my project from a disaster to a success. Thank you for your help!! This forum is spectacular.

Share this post


Link to post
Share on other sites

Posted

Great find, thanks for sharing.

Share this post


Link to post
Share on other sites

Posted

loves me some &&.  I use it quite often

Share this post


Link to post
Share on other sites

Posted

RunWait( @COMSPEC & " /c C:&&ipconfig /release&&ipconfig /renew", "", @SW_HIDE)

Share this post


Link to post
Share on other sites

Posted

I just stumbled across this sublime technique of concatenating DOS commands with &&, in order to run them on the same line.

EXAMPLE -- Does all of this in ONE execution of RunWait().. :)

  • set current drive to C:
  • change path to WINNT folder
  • collect the list of files there into a temporary file
  • open the file in your text editor
	RunWait( @COMSPEC & " /c C:&&cd \winnt&&dir>D:\temp\multi.txt&&D:\temp\multi.txt", "", @SW_SHOW )

Many thanks to trids for posting this - it did the job perfectly for me in VB 2008...

Dim sMyCommand As String
        sMyCommand = "cd test01&&dir>multi.txt
        Shell("cmd /c " & sMyCommand, vbHide)

Share this post


Link to post
Share on other sites

Posted (edited)

This one works.

RunWait( @COMSPEC & " /c C:&&cd \Tools&&dir>D:\temp\multi.txt&&D:\temp\multi.txt", "", @SW_SHOW )

But the below one doesn't. Can't we use ShellExecute with @COMPSPEC ?

because i would like to run cmd as admin using  IsAdmin() Which uses ShellExecute()
 

ShellExecute( @COMSPEC & " /c C:&&cd \Tools&&dir>D:\temp\multi.txt&&D:\temp\multi.txt", "", @SW_SHOW )

Thanks

Edited by lexicon

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0