Multiple commands on a single line in a Windows batch file

前端 未结 2 1046
一向
一向 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条回答
  •  萌比男神i
    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
    

提交回复
热议问题