中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在cmd中使用組合和管道命令

發布時間:2021-05-18 16:38:17 來源:億速云 閱讀:188 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在cmd中使用組合和管道命令,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1.&

Usage:第一條命令 & 第二條命令 [& 第三條命令...]
用這種方法可以同時執行多條命令,而不管命令是否執行成功

Sample:
C:/>dir z: & dir c:/Ex4rch
The system cannot find the path specified.
Volume in drive C has no label.
Volume Serial Number is 0078-59FB

Directory of c:/Ex4rch

2020-03-13 23:51 .
2020-03-13 23:51 ..
2020-03-13 23:51 14 sometips.gif

2.&&

Usage:第一條命令 && 第二條命令 [&& 第三條命令...]
用這種方法可以同時執行多條命令,當碰到執行出錯的命令后將不執行后面的命令,如果一直沒有出錯則
一直執行完所有命令;

Sample:
C:/>dir z: && dir c:/Ex4rch
The system cannot find the path specified.

C:/>dir c:/Ex4rch && dir z:
Volume in drive C has no label.
Volume Serial Number is 0078-59FB

Directory of c:/Ex4rch

2002-05-14 23:55 .
2002-05-14 23:55 ..
2002-05-14 23:55 14 sometips.gif
1 File(s) 14 bytes
2 Dir(s) 768,671,744 bytes free
The system cannot find the path specified.

在做備份的時候可能會用到這種命令會比較簡單,如:
dir file&://192.168.0.1/database/backup.mdb && copy file&://192.168.0.1/database/backup.mdb

E:/backup
如果遠程服務器上存在backup.mdb文件,就執行copy命令,若不存在該文件則不執行copy命令。這種用法

可以替換IF exist了.

3.||

Usage:第一條命令 || 第二條命令 [|| 第三條命令...]
用這種方法可以同時執行多條命令,當碰到執行正確的命令后將不執行后面的命令,如果沒有出現正確的
命令則一直執行完所有命令;

Sample:
C:/Ex4rch>dir sometips.gif ││ del sometips.gif
Volume in drive C has no label.
Volume Serial Number is 0078-59FB

Directory of C:/Ex4rch

2002-05-14 23:55 14 sometips.gif
1 File(s) 14 bytes
0 Dir(s) 768,696,320 bytes free

組合命令使用的例子:

sample:
@copy trojan.exe //%1/admin$/system32 && if not errorlevel 1 echo IP %1 USER %2 PASS %3

>>victim.txt

管道命令的使用

1.|管道命令

Usage:第一條命令 | 第二條命令 [| 第三條命令...]
將第一條命令的結果作為第二條命令的參數來使用,記得在unix中這種方式很常見。

time /t>>D://IP.log
netstat -n -p tcp|find ":3389">>D://IP.log
start Explorer

看出來了么?用于終端服務允許我們為用戶自定義起始的程序,來實現讓用戶運行下面這個bat,以獲得登錄用戶的IP。

2.>,>>輸出重定向命令
將一條命令或某個程序輸出結果的重定向到特定文件中, > 與 >>的區別在于,>會清除調原有文件中的內
容后寫入指定文件,而>>只會追加內容到指定文件中,而不會改動其中的內容。

sample1:

echo hello world>c://hello.txt (stupid example?)

sample2:

時下DLL木馬盛行,我們知道system32是個捉迷藏的好地方,許多木馬都削尖了腦袋往那里鉆,DLL馬也不例外,針對這一點我們可以在安裝好系統和必要的應用程序后,對該目錄下的EXE和DLL文件作一個記錄:運行CMD--轉換目錄到system32--dir *.exe>exeback.txt & dir *.dll>dllback.txt,這樣所有的EXE和DLL文件的名稱都被分別記錄到exeback.txt和dllback.txt中,日后如發現異常但用傳統的方法查不出問題時,則要考慮是不是系統中已經潛入DLL木馬了.這時我們用同樣的命令將system32下的EXE和DLL文件記錄到另外的exeback1.txt和dllback1.txt中,然后運行:

CMD fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.

(用FC命令比較前后兩次的DLL和EXE文件,并將結果輸入到diff.txt中),這樣我們就能發現一些多出來的DLL和EXE文件,然后通過查看創建時間、版本、是否經過壓縮等就能夠比較容易地判斷出是不是已經被DLL木馬光顧了。沒有是最好,如果有的話也不要直接DEL掉,先用regsvr32 /u trojan.dll將后門DLL文件注銷掉,再把它移到回收站里,若系統沒有異常反映再將之徹底刪除或者提交給殺毒軟件公司。

3.< , >& , <&

< 從文件中而不是從鍵盤中讀入命令輸入。
>& 將一個句柄的輸出寫入到另一個句柄的輸入中。
<& 從一個句柄讀取輸入并將其寫入到另一個句柄輸出中。

使用命令重定向操作符可以使用重定向操作符將命令輸入和輸出數據流從默認位置重定向到其他位置。輸入或輸出數據流的位置稱為句柄。

下表將列出可用的句柄。

句柄 句柄的數字代號 描述
STDIN 0 鍵盤輸入
STDOUT 1 輸出到命令提示符窗口
STDERR 2 錯誤輸出到命令提示符窗口
UNDEFINED 3-9 這些句柄由應用程序單獨定義,并且是各個工具特定的。

數字 0 到 9 代表前 10 個句柄。
可以使用命令 Cmd.exe 運行程序并將該程序前 10 個句柄中的任何一個重定向。要指定想使用的句柄,可在重定向操作符前面鍵入該句柄的數字。如果未定義句柄,則默認的 < 重定向輸入操作符是 0,而默認的 > 重定向輸出操作符是 1。鍵入 > 或 < 操作符之后,必須指定要讀取或寫入數據的位置。可以指定文件名或另一個現有的句柄。

要指定重定向到現有句柄,請使用與 (&) 字符,后面接要重定向的句柄號(例如 &句柄#)。例如,下面的命令可以將句柄 2(即 STDERR)重定向到句柄 1(即 STDOUT):

2>&1

下表列出了可用于將輸入和輸出數據流進行重定向的操作符。

重定向操作符 描述
> 將命令輸出寫入到文件或設備(例如打印機)中,而不是寫在命令提示符窗口或句柄中。
< 從文件中而不是從鍵盤或句柄中讀入命令輸入。
>> 將命令輸出添加到文件末尾而不刪除文件中的信息。
>& 將一個句柄的輸出寫入到另一個句柄的輸入中。
<& 從一個句柄讀取輸入并將其寫入到另一個句柄輸出中。
| 從一個命令中讀取輸出并將其寫入另一個命令的輸入中。也稱作管道。

默認情況下,可以從鍵盤將命令輸入(即 STDIN 句柄)發送到 Cmd.exe,然后由 Cmd.exe 將命令輸出(即 STDOUT 句柄)發送到命令提示符窗口。

重定向輸入 (<)
要將鍵盤輸入重定向到文件或設備,請使用 < 操作符。例如,要從 File.txt 獲取 sort 命令的輸入,請鍵入:

sort<file.txt

File.txt 的內容將以字母順序列表的方式顯示在命令提示符窗口中。

< 操作符可以打開具有只讀訪問的指定文件名。所以,不能使用該操作符向文件中寫入信息。例如,如果以 <&2 啟動程序,則所有試圖讀取句柄 0 的操作都將失敗,因為句柄 2 最初是以只寫訪問打開的。

注意

0 是 < 重定向輸入操作符的默認句柄。

重定向輸出 (>)
幾乎所有的命令都將輸出發送到命令提示符窗口。即使將輸出發送到驅動器或打印機的命令也會在命令提示符窗口顯示消息和提示。

要將輸出從命令提示符窗口重定向到文件或設備,請使用 > 操作符。可以在許多命令中使用該操作符。例如,要將 dir 輸出重定向到 Dirlist.txt,請鍵入:

dir>dirlist.txt

如果 Dirlist.txt 不存在,Cmd.exe 將創建該文件。如果 Dirlist.txt 存在,Cmd.exe 將使用 dir 命令的輸出替換文件中的信息。

要運行 netsh routing dump 命令,然后將輸出發送到 Route.cfg,請鍵入:

netsh routing dump>c:\route.cfg

> 操作符可以打開具有只寫訪問屬性的指定文件。所以,不能使用該操作符讀取文件。例如,如果使用重定向 >&0 啟動程序,則所有試圖寫入句柄 1 的操作都將失敗,因為句柄 0 最初是以只讀訪問打開的。

注意

1 是 > 重定向輸出操作符的默認句柄。

復制句柄
重定向操作符 & 可以將輸出或輸入從一個指定句柄復制到另一個指定的句柄。例如,要將 dir 輸出發送到 File.txt 并將錯誤輸出發送到 File.txt,請鍵入:

dir>c:\file.txt 2>&1

復制句柄時,可以復制該句柄原狀態的所有特性。例如,如果一個句柄具有只寫訪問的屬性,則該句柄的所有副本都具有只寫訪問屬性。不能將一個具有只讀訪問屬性的句柄復制到另一個具有只寫訪問屬性的句柄。

使用 & 操作符重定向輸入和副本
要將重定向輸入操作符 (<) 與復制操作符 (&) 一起使用,指定的文件必須已經存在。如果輸入文件存在,Cmd.exe 將以只讀方式打開該文件,然后將文件中包含的字符作為輸入發送到此命令(如同從鍵盤輸入一樣)。如果指定了句柄,Cmd.exe 將指定的句柄復制到系統現有的句柄中。

例如,要以句柄 0 輸入讀取(即 STDIN)的方式打開 File.txt,請鍵入:

<file.txt

要打開 File.txt,并在內容排序后將輸出發送到命令提示符窗口(即 STDOUT),請鍵入:

sort<file.txt

要查找 File.txt,然后將句柄 1(即 STDOUT)和句柄 2(即 STDERR)重定向到 Search.txt,請鍵入:

findfile file.txt>search.txt 2<&1

要以句柄 0 輸入讀取(即 STDIN)的方式復制用戶定義句柄 3,請鍵入:

<&3

使用 & 操作符重定向輸出和復制
如果將輸出重定向到文件且指定了現有的文件名,Cmd.exe 將以只寫方式打開文件并覆蓋該文件內容。如果指定了句柄,Cmd.exe 將文件復制到現有句柄中。

要將用戶定義句柄 3 復制到句柄 1,請鍵入:

>&3

要將包括句柄 2(即 STDERR)的所有輸出從 ipconfig 命令重定向到句柄 1(即 STDOUT),然后將輸出重定向到 Output.log,請鍵入:

ipconfig.exe>>output.log 2>&1

使用 >> 重定向操作符追加輸出
要從命令中將輸出添加到文件末尾而不丟失文件中已存在的任何信息,請使用兩個連續的大于號(即 >>)。例如,下面的命令可以將由 dir 命令生成的目錄列表追加到 Dirlist.txt 文件:

dir>>dirlist.txt

要將 netstat 命令的輸出追加到 Tcpinfo.txt 的末尾,請鍵入:

netstat>>tcpinfo.txt

使用管道操作符 (|)
管道操作符 (|) 可以提取一個命令的輸出(默認情況下是 STDOUT),然后將其導入另一個命令的輸入中(默認情況下是 STDIN)。例如,下面的命令將對目錄分類:

dir | sort

在本例中,將同時啟動兩個命令,但隨后 sort 命令會暫停,直到它接收到 dir 命令的輸出為止。sort 命令使用 dir 命令的輸出作為輸入,然后將輸出發送到句柄 1(即 STDOUT)。

合并帶重定向操作符的命令
可以通過合并帶有其他命令和文件名的篩選器命令創建自定義命令。例如,可以使用以下命令存儲包含“LOG”字符串的文件名:

dir /b | find "LOG" > loglist.txt

dir 命令的輸出通過 find 篩選器命令發送。包含字符串 "LOG" 的文件名作為文件名列表(例如,NetshConfig.log、Logdat.svd 和 Mylog.bat)存儲在文件 Loglist.txt 中。

要在相同命令中使用多個篩選器,請使用管道 (|) 分隔篩選器。例如,下面的命令將搜索 C 盤上的每個目錄以查找包含 "LOG" 字符串的文件名,并且在命令提示符窗口中每次顯示一屏:

dir c:\ /s /b | find "LOG" | more

利用管道 (|) 可以將 Cmd.exe 導向為通過 find 篩選器命令發送 dir 命令輸出。find 命令只選擇包含字符串 "LOG" 的文件名。more 命令可以顯示由 find 命令選擇的文件名(在命令提示符窗口中每次顯示一屏)。有關篩選器命令的詳細信息,請參閱使用篩選器。

談談重定向、管道與C

我所知道的重定向和管道就這些了,寫了一早晨終于寫完了,現在接著睡,希望對大家有用。
這是我學習之中知道的一些關于重定向和管道的知識,并積累的資料,在這里和大家分享。如果說的有不足和錯誤的地方,請指出。畢竟是交流信息。我這里是從DOS和C語言方面看它,沒有太多涉及LINUX中所說的。我想從以下幾個方面敘述:

一、 重定向:

所謂重定向,就是不使用系統的標準輸入端口、標準輸出端口或標準錯誤端口,而進行重新的指定,所以重定向分為輸出重定向、輸入重定向和錯誤重定向(注:
STDIN 0 標準輸入 鍵盤 命令在執行時所要的輸入數據通過它來取得
STDOUT 1 標準輸出 顯示器 命令執行后的輸出結果從該端口送出
STDERR 2 標準錯誤 顯示器 命令執行時的錯誤信息通過該端口送出 )。
通常情況下重定向到一個文件。重定向命令又稱轉向命令。其中錯誤重定向和輸出重定向有些類似,就不多說,學過C++可能會明白的多些。
所 謂輸出重定向指把執行相應DOS命令時本應在屏幕上顯示的內容輸出到重定向命令所指向的文件或設備中去。輸出重定向命令 > 、>>。它們的區別是:如果你使用的是 > ,原文件會被刪除,重新生成新的文件,其內容如上所述;如果你使用的是 >> ,它以追加的方式,將命令的輸出寫入文件的末尾,原文件內容會被保留,新的內容會添加到原文件件的內容的后面。主要用在某個命令的輸出很多,在屏幕上不能 完全顯示,就可把它重定向到一個文件中,稍后再用文本編輯器來打開這個文件。
輸入重定向使輸入信息來自文件。如果一個名為file.com的文件 C:>file 之后,執行file時所需的處理信息就改為由文件file讀入,這就是輸入重定向。小于號<是輸入重定向操作符,在<之后的文件名或設備名是 重定向的輸入源。如果一個程序時需要輸入較多數據,使用輸入重定向可以提高效率。在這里要說一些過濾命令 more 、sort 和 find 。其中more進行分屏顯示;find 查找符合條件的內容;sort(按行)排序。

例如:(我是在windows命令提示符中用的)

例1: 

more < f:\turboc2\readme

more的輸入來自 c:\tc\readme 文件內容多。這個命令與

type f:\turboc2\readme | more

作用相同,但更簡潔,效率也更高。
例2:(注cmd重定向進入后用exit返回原目錄)

cmd > file 把 stdout 重定向到 file 文件中
cmd >> file 把 stdout 重定向到 file 文件中(追加)
cmd 1> file 把 stdout 重定向到 file 文件中
cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中
cmd 2> file 把 stderr 重定向到 file 文件中
cmd 2>> file 把 stderr 重定向到 file 文件中(追加)
cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 文件中
cmd < file >file2 cmd 命令以 file 文件作為 stdin,以 file2 文件作為 stdout

注:>&n 使用系統復制文件描述符 n 并把結果用作標準輸出
<&n 標準輸入復制自文件描述符 n
<&- 關閉標準輸入(鍵盤)
>&- 關閉標準輸出
n<&- 表示將 n 號輸入關閉
n>&- 表示將 n 號輸出關閉
&> 同時實現輸出重定向和錯誤重定向

用 途:DOS的標準輸入輸出通常是在標準設備鍵盤和顯示器上進行的, 利用重定向,可以方便地將輸入輸出改向磁盤文件或其它設備。如在批處理命令執行期間為了禁止命令或程序執行后輸出信息而擾亂屏幕, 可用DOS重定向功能把輸出改向NUL設備(NUL不指向任何實際設備): C:\>copy a.txt b.txt > NUL。命令執行結束不顯示"1 file(s) copied"的信息。有的交互程序在執行時要求很多鍵盤輸入, 但有時輸入是固定不變的, 為加快運行速度, 可預先建立一個輸入文件,此文件的內容為程序的鍵盤輸入項, 每個輸入項占一行。假如有一個程序cx 其輸入項全部包括在文件in.dat中, 執行 C:\>cx <in.dat>NUL 程序就自動執行。

二、 管道:

進 程從“管道”的一端發送另一端接收,也就是說將若干命令用輸入輸出“管道”串接在一起,這就是管道;管道在某種程度上是輸入和輸出重定向的結合,前一個命 令的輸出,作為下一個命令的輸入,而不需要經過任何中間文件。豎線字符“|”是管道操作符,管道命令經常與上面講的過濾命令聯合使用。DOS的管道功能是 使一個程序或命令的標準輸出用做另一個程序或命令的標準輸入。如把DEBUG的輸入命令寫入文件aaa, 用type命令通過管道功能將aaa的內容傳輸給DEBUG, 在DEBUG執行期間不再從控制臺索取命令參數, 從而提高了機器效率。

命令為: C:\>type aaa|DEBUG >bbb。

例如,這是我以前看到的例子。命令dir|more使得當前目錄列表在屏幕上逐屏 顯示。dir的輸出是整個目錄列表,它不出現在屏幕上而是由于符號“|”的規定,成為下一個命令more的輸入,more命令則將其輸入,more命令則 將其輸入一屏一屏地顯示,成為命令行的輸出。再如命令dir|find”hello”>file,其中 dir的輸出是當前目錄列表,不出現在屏幕上而是成為find命令的輸入。find命令在輸入文件中尋找指定字符串"hello"并輸出包含這個字符串的 行,由于輸出重定向符號>的規定,最后的輸出已存入文件file,不出現在屏幕上。命令dir|find"< dir >file則是將當前目錄項中的子目錄項尋找出來并存入文件file中。

變量類型描述
%ALLUSERSPROFILE%局部返回“所有用戶配置文件”的位置。
%APPDATA%局部返回默認情況下應用程序存儲數據的位置。
%CD%局部返回當前目錄字符串。
%CMDCMDLINE%局部返回用來啟動當前的 Cmd.exe 的準確命令行。
%CMDEXTVERSION%系統返回當前的“命令處理程序擴展”的版本號。
%COMPUTERNAME%系統返回計算機的名稱。
%COMSPEC%系統返回命令行解釋器可執行程序的準確路徑。
%DATE%系統返回當前日期。使用與date /t命令相同的格式。由 Cmd.exe 生成。有關 date 命令的詳細信息,請參閱 Date。
%ERRORLEVEL%系統返回上一條命令的錯誤代碼。通常用非零值表示錯誤。
%HOMEDRIVE%系統返回連接到用戶主目錄的本地工作站驅動器號。基于主目錄值而設置。用戶主目錄是在“本地用戶和組”中指定的。
%HOMEPATH%系統返回用戶主目錄的完整路徑。基于主目錄值而設置。用戶主目錄是在“本地用戶和組”中指定的。
%HOMESHARE%系統返回用戶的共享主目錄的網絡路徑。基于主目錄值而設置。用戶主目錄是在“本地用戶和組”中指定的。
%LOGONSERVER%局部返回驗證當前登錄會話的域控制器的名稱。
%NUMBER_OF_PROCESSORS%系統指定安裝在計算機上的處理器的數目。
%OS%系統返回操作系統名稱。Windows 2000 會將該操作系統顯示為 Windows NT。
%PATH%系統指定可執行文件的搜索路徑。
%PATHEXT%系統返回操作系統認為可執行的文件擴展名的列表。
%PROCESSOR_ARCHITECTURE%系統返回處理器的芯片體系結構。值:x86 或 IA64(基于 Itanium)。
%PROCESSOR_IDENTFIER%系統返回處理器說明。
%PROCESSOR_LEVEL%系統返回計算機上安裝的處理器的型號。
%PROCESSOR_REVISION%系統返回處理器的版本號。
%PROMPT%局部返回當前解釋程序的命令提示符設置。由 Cmd.exe 生成。
%RANDOM%系統返回 0 到 32767 之間的任意十進制數字。由 Cmd.exe 生成。
%SYSTEMDRIVE%系統返回包含 Windows 服務器操作系統根目錄(即系統根目錄)的驅動器。
%SYSTEMROOT%系統返回 Windows 服務器操作系統目錄的位置。
%TEMP% 和 %TMP%系統和用戶返回對當前登錄用戶可用的應用程序所使用的默認臨時目錄。有些應用程序需要 TEMP,而其他應用程序則需要 TMP。
%TIME%系統返回當前時間。使用與 time /t 命令相同的格式。由 Cmd.exe 生成。有關 time 命令的詳細信息,請參閱 Time。
%USERDOMAIN%局部返回包含用戶帳戶的域的名稱。
%USERNAME%局部返回當前登錄的用戶的名稱。
%USERPROFILE%局部返回當前用戶的配置文件的位置。
%WINDIR%系統返回操作系統目錄的位置。

關于如何在cmd中使用組合和管道命令就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

cmd
AI

洱源县| 嫩江县| 屏南县| 湘潭市| 乐山市| 泰和县| 杭州市| 正蓝旗| 察隅县| 密山市| 日土县| 仙游县| 洱源县| 汽车| 临颍县| 镇巴县| 太康县| 屏边| 沂南县| 荔浦县| 永仁县| 平安县| 安新县| 桦甸市| 新巴尔虎右旗| 民勤县| 同仁县| 海晏县| 萨迦县| 富民县| 清丰县| 镇江市| 黄陵县| 庄河市| 三门县| 苏尼特右旗| 镇康县| 长兴县| 玛曲县| 廊坊市| 亳州市|