windows - cmd自動執行指令 - cmd連續指令




如何在Windows CMD的一行中運行兩個命令? (11)

&是Bash的等價物; (運行命令), &&&&的Bash等同物(只有當前一個沒有導致錯誤時才運行命令)。

我想在Windows CMD控制台中運行兩個命令。

在Linux中,我會這樣做: touch thisfile ; ls -lstrh touch thisfile ; ls -lstrh

它如何在Windows上完成?


cmd /c ipconfig /all & Output.txt

該命令執行命令並在單個命令中打開Output.txt文件


不, cd / && tree && echo %time% 。 回顯的時間在第一個命令執行時。

管道有一些問題,但只要人們知道它是如何工作的並不重要。


來自文檔的引用:

使用多個命令和條件處理符號

您可以使用條件處理符號從單個命令行或腳本運行多個命令。 當您使用條件處理符號運行多個命令時,條件處理符號右側的命令根據條件處理符號左側的命令結果進行操作。

例如,只有在前一個命令失敗的情況下才可以運行命令。 或者,只有在前一個命令成功時才可以運行命令。

您可以使用下表中列出的特殊字符來傳遞多個命令。

  • & [...]
    command1 & command2
    用於在一個命令行上分隔多個命令。 Cmd.exe運行第一個命令,然後運行第二個命令。

  • && [...]
    command1 && command2
    只有在符號前面的命令成功時,才可用於在&&後面運行命令。 Cmd.exe運行第一個命令,然後僅在第一個命令成功完成時才運行第二個命令。

  • || [...]
    command1 || command2
    用於在||之後運行該命令 只有在||之前的命令 失敗。 Cmd.exe運行第一個命令,然後僅在第一個命令未成功完成(接收到大於零的錯誤代碼)時才運行第二個命令。

  • ( ) [...]
    (command1 & command2)
    用於分組或嵌套多個命令。

  • ; or ,
    command1 parameter1;parameter2
    用於分隔命令參數。


在同一行上運行多個命令時可能會使用多個處理符號 ,並且可能導致在某些情況下處理重定向,在其他情況下更改輸出,或者只是失敗。 一個重要的情況是放置在操縱變量的相同行命令上。

@echo off
setlocal enabledelayedexpansion
set count=0
set "count=1" & echo %count% !count!

0 1

正如你在上面的例子中看到的,當使用變量的命令放在同一行時,你必須使用延遲擴展來更新你的變量值。 如果您的變量已建立索引,請使用帶%%修飾符的CALL命令在同一行上更新其值:

set "i=5" & set "arg!i!=MyFile!i!" & call echo path!i!=%temp%\%%arg!i!%%

path5=C:\Users\UserName\AppData\Local\Temp\MyFile5

如果你想創建一個cmd快捷方式(例如在桌面上),添加/ k參數(/ k表示保持,/ c將關閉窗口):

cmd /k echo hello && cd c:\ && cd Windows

您可以使用&來一個接一個地運行命令。 例如: c:\dir & vim myFile.txt


我嘗試在同一個窗口中有兩個ping,並且它是同一行上的串行命令。 完成第一個命令後,運行第二個命令。

解決方案是在Windows 7命令提示符下與start /b結合使用。

像往常一樣開始,沒有/b ,並在一個單獨的窗口中啟動。

用於在同一行中啟動的命令是:

start /b command1 parameters & command2 parameters

任何方式,如果你想分析輸出,我不建議使用這個。 我注意到輸出在命令的輸出之間混亂。


為了同時執行兩個命令,您必須在這兩個命令之間放置一個&(&符號)符號。 像這樣:

color 0a & start chrome.exe

乾杯!


當您嘗試在一行中使用或操作變量時,請注意其內容! 例如像下面這樣的變量

PATH=C:\Program Files (x86)\somewhere;"C:\Company\Cool Tool";%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;

可能會導致很多不可預料的麻煩,如果您將它用作%PATH%

  1. 結束括號會終止您的小組聲明
  2. 雙引號不允許使用%PATH%來處理括號問題
  3. 而像%USERPROFILE%這樣的引用變量包含什麼?

那麼,你有兩個選擇:管道,或只是&

DIR /S & START FILE.TXT

要么,

tasklist | find "notepad.exe"

管道( | )更多的是用於輸出一個命令,並將其放入另一個命令。 ( & )只是說說運行這個,而那個。





cmd