Multiple commands on a single line in a Windows batch file

前端 未结 2 1031
一向
一向 2020-12-02 07:55

In Unix, we can put multiple commands in a single line like this:

$ date ; ls -l ; date

I tried a similar thing in Windows:



        
相关标签:
2条回答
  • 2020-12-02 08:41

    Can be achieved also with scriptrunner

    ScriptRunner.exe -appvscript demoA.cmd arg1 arg2 -appvscriptrunnerparameters -wait -timeout=30 -rollbackonerror -appvscript demoB.ps1 arg3 arg4 -appvscriptrunnerparameters -wait -timeout=30 
    

    Which also have some features as rollback , timeout and waiting.

    0 讨论(0)
  • 2020-12-02 08:51

    Use:

    echo %time% & dir & echo %time%
    

    This is, from memory, equivalent to the semi-colon separator in bash and other UNIXy shells.

    There's also && (or ||) which only executes the second command if the first succeeded (or failed), but the single ampersand & is what you're looking for here.


    That's likely to give you the same time however since environment variables tend to be evaluated on read rather than execute.

    You can get round this by turning on delayed expansion:

    pax> cmd /v:on /c "echo !time! & ping 127.0.0.1 >nul: & echo !time!"
    15:23:36.77
    15:23:39.85
    

    That's needed from the command line. If you're doing this inside a script, you can just use setlocal:

    @setlocal enableextensions enabledelayedexpansion
    @echo off
    echo !time! & ping 127.0.0.1 >nul: & echo !time!
    endlocal
    
    0 讨论(0)
提交回复
热议问题