windows - bat -自動化運維基礎和常用命令


一.簡單批處理內部命令簡介
1.Echo 命令
打開回顯或關閉請求回顯功能,或顯示消息。
2.@ 命令
表示不顯示@后面的命令,但是會顯示結果
3.Goto和: 命令
:定義標簽,goto跳轉到標簽
4.Rem ::注釋命令
::不顯示不執行,rem顯示不執行
5.Pause 命令
暫停命令
6.Call 命令
調用本文件內命令段,相當於子程序.被調用的命令段以標簽:label開頭,以命令goto :eof結尾。
Call :sub tmp.txt
:sub
Echo 刪除引號: %~1
Goto :eof

7.start 命令
調用外部程序
8.choice 命令
CHOICE /C ab /N /M "選項 1 請選擇 a,選項 2 請選擇 b。"
if %errorlevel%=="a" goto end
/C 創建選項列表ab默認是 "YN",/N 不顯示選項列表,/m 設置提示文字,/t 設置暫停時間后自動選擇默認項,/d 設置默認項
9.If 命令
判斷是否符合規定的條件,從而決定執行不同的命令
if “參數” == “字符串” 待執行的命令 :條件成立,運行命令
if exist 文件名 待執行的命令:如果有指定的文件,運行命令
if errorlevel / if not errorlevel 數字 待執行的命令:程序運行時都會返回一個數字給DOS,稱為錯誤碼errorlevel或稱返回碼,常見的返回碼為0、1
10.for 命令
/d僅為目錄
/R遞歸(文件名)
/L迭代數值范圍
/F迭代及文件解析
11.set 命令
set string=csdn 賦值,echo %string% 使用值
set /P INPUT= 設置為輸入值
12.net start 查看所有服務
13.tasklist 查看所有進程
14.taskkill 結束進程 taskkill /f /t /im "iex*"
/IM 指定要終止的進程的映像名稱。通配符 '*'可用來指定所有任務或映像名稱。
/T 終止指定的進程和由它啟用的子進程。
/F 指定強制終止進程。

二.如何在批處理文件中使用參數
批處理中可以使用參數,一般從1%到 9%這九個

三.如何使用組合命令
1.& 第一條命令 & 第二條命令 [& 第三條命令…]
這種方法可以同時執行多條命令,而不管命令是否執行成功
2.&& 第一條命令 && 第二條命令 [&& 第三條命令…]
碰到執行出錯的命令后將不執行后面的命令
3.││ 第一條命令 ││ 第二條命令 [││ 第三條命令…]
碰到執行正確的命令后將不執行后面的命令

四、管道命令的使用
1.│ 第一條命令 │ 第二條命令 [│ 第三條命令…]
第一條命令的結果作為第二條命令的參數來使用
2.>、>>輸出重定向命令
>覆蓋內容,>>追加內容


robocopy 高級復制

 

常用命令
----------------命令----------------
Del:刪除文件
Copy:復制文件
Xcopy:復制文件夾
Md:創建文件夾
rd:刪除文件夾
ren:重命名文件(夾)
move:移動文件(夾)
find:字符串查找
findstr:字符串查找增強,可以進行模式匹配搜索
pushd c:\mp3 保存當前目錄,並切換當前目錄為 c:\mp3
popd 恢復當前目錄為剛才保存的 d:\mp4
----------------dir命令----------------
dir 顯示當前目錄中的文件和子目錄
dir /a 顯示當前目錄中的文件和子目錄,包括隱藏文件和系統文件
dir c: /a:d 顯示 C 盤當前目錄中的目錄
dir c: /a:-d 顯示 C 盤根目錄中的文件
dir c:\ /b/p /b只顯示文件名,/p分頁顯示
dir *.exe /s 顯示當前目錄和子目錄里所有的.exe文件
----------------其它----------------
@choice /t 10 /d y /n >nul 等待10秒
rd /s/q d:\temp 刪除d:\temp 文件夾及其子文件夾和文件
del /q/a/f/s d:\temp\*.* 刪除 d:\temp及子文件夾里面的所有文件,包括隱藏、只讀、系統文件,不包括子目錄
ren d:\temp tmp 支持對文件夾的重命名
cls命令 清屏
type *.txt 顯示當前目錄里所有.txt文件的內容
xcopy d:\mp3 e:\mp3 /s/e/i/y
復制 d:\mp3 文件夾、所有子文件夾和文件到 e:\ ,覆蓋已有文件
加 /i 表示目標文件夾不存在就自動新建一個,否則會有詢問
----------------date和time命令----------------
date 顯示當前日期,並提示輸入新日期,按\"回車\"略過輸入

date /t 只顯示當前日期,不提示輸入新日期

time 顯示當前時間,並提示輸入新時間,按\"回車\"略過輸入

time/t 只顯示當前時間,不提示輸入新時間
----------------find命令------------------------
find \"abc\" c:\test.txt
在 c:\test.txt 文件里查找含 abc 字符串的行,如果找不到,將設 errorlevel 返回碼為1

find /i “abc” c:\test.txt
查找含 abc 的行,忽略大小寫

find /c \"abc\" c:\test.txt
顯示含 abc 的行的行數
----------------for命令------------------------
循環命令
for %%i in (c: d: e: f:) do echo %%i
依次調用小括號里的每個字符串,執行 do 后面的命令
注意%%i,在批處理中 for 語句調用參數用2個%

for %%i in (*.txt) do find \"abc\" %%i
對當前目錄里所有的txt文件執行 find 命令

for /r . %%i in (*.txt) do find \"abc\" %%i
在當前目錄和子目錄里所有的.txt文件中搜索包含 abc 字符串的行

for /r . %%i in (.) do echo %%~pni
顯示當前目錄名和所有子目錄名,包括路徑,不包括盤符

for /r d:\mp3 %%i in (*.mp3) do echo %%i>>d:\mp3.txt
把 d:\mp3 及其子目錄里的mp3文件的文件名都存到 d:\mp3.txt 里去

for /l %%i in (2,1,8) do echo %%i
生成2345678的一串數字,2是數字序列的開頭,8是結尾,1表示每次加1

for /f %%i in ('set') do echo %%i
對 set 命令的輸出結果循環調用,每行一個

for /f \"eol=P\" %%i in ('set') do echo %%i
eol忽略以 P 開頭的那幾行

for /f %%i in (d:\mp3.txt) do echo %%i
默認不支持帶空格的名稱

for /f \"delims=\" %%i in (d:\mp3.txt) do echo %%i
delims支持帶空格的名稱

for /f \"skip=5 tokens=4\" %%a in ('dir') do echo %%a
skip跳過前面5行,tokens每行取第4列

啟動服務
net start 查看啟動中的服務
服務名啟動 net start "服務名"
服務名停止 net stop "服務名"

用sc可打開被禁用的服務,語法是:【Start=號后面有空格】
創建服務
sc create test3 binPath= "C:\Users\win32srvDemo.exe"
配置服務
sc config 服務名 start= demand //手動
sc config 服務名 start= auto //自動
sc config 服務名 start= disabled //禁用
啟動和結束
sc start 服務名
sc stop 服務名


免責聲明!

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



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