Windows DOS命令\批處理腳本


批處理程序

簡單來說,批處理程序就是 Windows 自帶的腳本,可以在 cmd | powershell 中直接運行,若寫成文件,后綴為 .bat

小知識

  1. cmd 與 powershel 不區分大小寫
  2. 命令行的運算操作,類似於 PHP
  3. DOS 是磁盤操作系統;命令提示符是 DOS 系統的界面中輸入 DOS 命令的提示位置;cmd 是系統運行其自帶 DOS 的命令;cmd.exe 是一個 16 位的 DOS 應用程序
  4. PID 是 processid(進程號);IM 是 imaginename(映像名稱)
  5. 在 .bat 文件開頭加上 @echo off 代表不輸出描述,比如 C:\Users\14805\desktop>... 這樣的描述不會輸出,直接輸出結果
  6. 設置變量 set a=10,輸出變量 echo %a%,設置變量表達式 set /a b=%a%+1

簡單演示

:: 兩個冒號表示 cmd 的注釋
rem 也表示 cmd 的注釋
# 一個井號表示 powershell 的注釋

bat 文件內容:
echo "Hello World!"
pause

cmd 運行指令:
test.bat
輸出 "Hello World!"

powershell 運行指令:
.\test.bat
輸出 "Hello World!"

覆蓋與追加內容

覆蓋
echo "hello world" > t.txt

追加
echo "hello world" >> t.txt

查看內容
type

多命令運算

短路
ipconfig || net user
從第一個執行,直到執行正確停止

斷路
ipconfig && net user
從第一個執行,直到執行錯誤停止

net user

查看所有用戶
net user

查看幫助
net user /?

查看幫助完整版
net user /help

其他命令感覺有點危險,先不寫了

參數傳遞

bat 文件內容:
echo %1 %2

poweshell 運行指令:
.\test.bat Hello World!
輸出 Hello World!

時間

cmd 運行指令:
年月日
date
輸出 當前日期: 2021-09-27
date /T
輸出 2021-09-27

時分秒
time
輸出 當前時間: 23:14:16.68
time /T
輸出 23:14

poweshell 運行指令:
date
輸出 2021年9月27日 23:14:49

call

test.bat 文件內容:
echo "Hello "
call test2.bat

test2.bat 文件內容:
echo "Wordl!"

poweshell 運行指令:
.\test.bat
輸出 Hello World!

tasklist | taskill

獲取當前狀態運行進程的列表
tasklist

獲取指定要連接的遠程系統的 tasklist
tasklist /S 192.168.0.1 /U admin /S password

其他參數:/FI 用於篩選 /FO 輸出指定格數
tasklist /FI "PID eq 3232" /FO csv > a.csv

taskkill 是關閉進程
taskkill /IM notepad.exe

tree

文件生成樹
tree
輸出
C:.
├───a
├───b
└───c

換一種文件生成樹
tree /A
輸出
C:.
+---a
+---b
\---c

詳細文件生成樹
tree /F
輸出
C:.
├───a
│       a.txt
│
├───b
└───c

shutdown

打開 GUI 執行遠程主機關機的操作
shutdown /i

關閉本地主機
shutdown /p

at

某個時間點執行某個作業
at 21:56 "notepad.exe"

刪除某個作業
at 2 /delete

每天都在某個位置執行某個作業
at 22:00 /every:M,T,W,Th,F,S,Su C:\Users\14805\desktop\payload.exe

set

cmd 運行指令:
顯示當前環境變量
set

輸出環境變量值
echo %OS%
輸出 Windows_NT

操作文件夾

創建文件夾
mkdir test
md test

重命名文件夾
ren test test1

將 a 文件夾中的文件復制到 b 文件夾
copy a b

刪除文件夾
rmdir test
rd test

刪除文件
del *.txt

重命名文件
move test.txt test1.txt

移動文件
move C:\a\test.txt C:\b\test.txt

循環結構

1.
if () else ()

2.
if (
) else (
)

3. 循環文件夾

# for /d %%名稱 in (路徑/*) do 具體操作

.bat文件內容:打印當前文件夾下的所有文件夾
for /d %%a in (*) do echo %%a

4.循環文件

# for /r "目錄文件" %%名稱 in (匹配規則,例如 *.py) do 具體操作

.bat文件內容:打印當前文件夾下的所有.py文件
for /r "C:\Users\14805\Desktop\abc" %%a in (*.py) do echo %%a

5.循環數字

# for /L %%a in (start,step,end) do 具體操作

.bat文件內容:ping 168.0.0.1 至 168.0.0.20(傳入參數 %1 等於 168.0.0) 
for /L %%a in (1,1,20) do ping %1.%%a

6.循環文件中的內容

# for /F %%a in (文件名) do 具體操作

.bat文件內容:打印test.bat中的內容
for /F %%a in (test.bat) do echo %%a

常用快捷鍵

清屏
cls

顯示當前目錄
dir (cmd | powershell)
ls (powershell)

打開當前文件夾
start .

查找文件
dir *.txt (cmd | powershell)

顯示當前路徑
pwd (powershell)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM