人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

教你編寫bat腳本W(wǎng)indows批處理

發(fā)布日期:2022-07-15 19:29 | 文章來源:CSDN

批處理腳本文件具有特殊的擴(kuò)展名BAT或CMD,這種類型的文件通過稱為**命令解釋器(cmd.exe)**的系統(tǒng)文件提供的接口(shell)來識(shí)別和執(zhí)行。

常見用途

  • 為不同的目的設(shè)置服務(wù)器
  • 自動(dòng)管理活動(dòng)和日志,如刪除不需要的文件或日志文件
  • 自動(dòng)將應(yīng)用程序從一個(gè)環(huán)境部署到另一個(gè)環(huán)境。
  • 立即在各種機(jī)器上安裝程序。

bat命令速查

命令備注
VER顯示正在使用的MS-DOS的版本
ASSOC這是將擴(kuò)展名與文件類型(FTYPE)相關(guān)聯(lián)的批處理命令,顯示現(xiàn)有關(guān)聯(lián)或刪除關(guān)聯(lián)
cd更改不同的目錄,或顯示當(dāng)前目錄
CLS清屏
COPY文件復(fù)制
DEL刪除文件
DIR列出目錄內(nèi)容
DATE系統(tǒng)日期
ECHO顯示消息,或打開、關(guān)閉命令回顯
EXIT退出DOS控制臺(tái)
MD創(chuàng)建目錄
MOVE移動(dòng)文件或目錄
PATH顯示或設(shè)置路徑變量
PAUSE等待輸入
PROMPT用于更改或重置cmd.exe提示符
RD刪除目錄(需為空)
REN重命名文件和目錄
REM注釋
START在新窗口中啟動(dòng)程序,或打開文檔
TIME設(shè)置或顯示時(shí)間
TYPE將文件或文件的內(nèi)容打印到輸出中
VOL顯示卷標(biāo)
ATTRIB顯示或設(shè)置當(dāng)前目錄中的文件的屬性
CHKDSK檢查磁盤是否有問題
CHOICE為用戶提供了一個(gè)選項(xiàng)列表
CMD調(diào)用另一個(gè)命令提示符實(shí)例
COMP根據(jù)文件大小比較2個(gè)文件
CONVERT將卷從FAT16或FAT32文件系統(tǒng)轉(zhuǎn)換為NTFS文件系統(tǒng)
DRIVERQUERY顯示所有已安裝的設(shè)備驅(qū)動(dòng)程序及其屬性
EXPAND從壓縮的.cab壓縮文件中提取文件
FIND在文件或輸入中搜索字符串,輸出匹配的行
FORMAT將磁盤格式化為使用Windows支持的文件系統(tǒng)(如FAT,F(xiàn)AT32或NTFS),從而覆蓋磁盤的先前內(nèi)容
HELP顯示W(wǎng)indows提供的命令的列表
IPCONFIG顯示W(wǎng)indows IP配置。顯示連接的配置和連接的名稱
LABEL添加,設(shè)置或刪除磁盤標(biāo)簽
MORE一次顯示一個(gè)或多個(gè)文件的內(nèi)容
NET根據(jù)使用的命令提供各種網(wǎng)絡(luò)服務(wù)
PING通過網(wǎng)絡(luò)將ICMP/IP “回顯”發(fā)送到指定的地址的包
SHUTDOWN關(guān)閉計(jì)算機(jī),或者注銷當(dāng)前用戶
SORT從源文件獲取輸入,并按字母順序排序其內(nèi)容,從A到Z或從Z到A。它將在控制臺(tái)上打印輸出
SUBST將驅(qū)動(dòng)器號(hào)分配給本地文件夾,顯示當(dāng)前分配或刪除分配
SYSTEMINFO該批處理命令顯示計(jì)算機(jī)及其操作系統(tǒng)的配置
TASKKILL該批處理命令結(jié)束一個(gè)或多個(gè)任務(wù)
TASKLIST列出任務(wù),包括任務(wù)名稱和進(jìn)程標(biāo)識(shí)(PID)
XCOPY以更高級(jí)的方式復(fù)制文件和目錄
TREE將當(dāng)前目錄的所有子目錄的樹顯示為遞歸或深度的任何級(jí)別
FC列出兩個(gè)文件之間的實(shí)際差異
DISKPART顯示和配置磁盤分區(qū)的屬性
TITLE該批處理命令設(shè)置控制臺(tái)窗口中顯示的標(biāo)題
SET顯示當(dāng)前系統(tǒng)上的環(huán)境變量列表

常用參數(shù)

/L: for循環(huán)移動(dòng)范圍的/L參數(shù)用于迭代數(shù)組。
/A:數(shù)值

echo

@echo off
  • “echo off” :關(guān)閉腳本的顯示(不顯示命令)。
  • “@” :使命令也適用于自己。

注釋

Rem

Rem Remarks

程序執(zhí)行時(shí)忽略Rem關(guān)鍵字之后的任何內(nèi)容。

使用::聲明

:: Remarks

dir :獲取目錄內(nèi)容

> :將輸出重定向到文件

@echo off 
Rem This is for listing down all the files in the directory Program files 
dir "C:\Program Files" > C:\lists.txt 
echo "The program has completed"

變量

命令行參數(shù)

rem Test.bat
@echo off 
echo %1 
echo %2 
echo %3

運(yùn)行方式

Test.bat 1 2 3

set命令

set /A variable-name=value

  • variable-name: 變量的名稱
  • value:變量值。
  • /A:如果該值本質(zhì)上是數(shù)值,則使用此開關(guān)。

字符串

@echo off 
set message=Hello World 
echo %message%
rem 變量需要包含在%符號(hào)中顯示

數(shù)值

@echo off 
SET /A a=5 
SET /A b=10 
SET /A c=%a% + %b% 
echo %c%

局部變量 vs 全局變量

  • 默認(rèn)情況下為全局變量。
  • 調(diào)用SETLOCAL命令,使變量局部在腳本的范圍內(nèi)。
  • 在調(diào)用SETLOCAL之后,任何變量賦值在調(diào)用ENDLOCAL,調(diào)用EXIT,或者當(dāng)執(zhí)行到達(dá)腳本中的文件結(jié)尾(EOF)時(shí)都會(huì)返回。
@echo off 
set globalvar=5
SETLOCAL
set var=13145
set /A var=%var% + 5
echo %var%
echo %globalvar%
ENDLOCAL

環(huán)境變量輸出

@echo off 
echo %JAVA_HOME%

字符串

創(chuàng)建

set message=Hello World

空字符串

SET a= 
if [%a%]==[] echo "String A is empty" 

要檢查是否存在空字符串,需要在方括號(hào)中包含變量名,并將其與方括號(hào)中的值進(jìn)行比較。

字符串拼接

@echo off 
SET a=Hello 
SET b=World 
SET /A d=50 
SET c=%a% and %b% %d%
echo %c%
:: Hello and World 50

字符串長(zhǎng)度

@echo off
set str=Hello World
call :strLen str strlen
echo String is %strlen% characters long
exit /b
:strLen
setlocal enabledelayedexpansion
:strLen_Loop
if not "!%1:~%len%!"=="" set /A len+=1 & goto :strLen_Loop
(endlocal & set %2=%len%)
goto :eof

轉(zhuǎn)int

使用set變量設(shè)置為字符串的變量后,可以使用set變量的**/A開關(guān)轉(zhuǎn)換為整數(shù)**。

@echo off
set var=13145
set /A var=%var% + 5
echo %var%

截取

%variable:~num_chars_to_skip% 
%variable:~num_chars_to_skip,num_chars_to_keep%

輸出:

Helloworld
Hello

~0,5用于指定需要顯示的字符

右對(duì)齊

@echo off 
set x=1000 
set y=1 
set y=%y% 
echo %x% 
set y=%y:~-4% 
echo %y%

輸出

1000
1

使用~-4選項(xiàng)來表示只想顯示字符串y的最后4個(gè)字符

刪除字符串

@echo off 
set str=Batch scripts is easy. It is really easy. 
echo %str% 
:: 刪除is
set str=%str:is=% 
echo %str%
:: Batch scripts easy. It really easy.

刪除兩端(保留中間)

@echo off 
set str=Batch scripts is easy. It is really easy 
echo %str% 
set str=%str:~1,-1% 
echo %str%
:: atch scripts is easy. It is really eas

刪除空格:=

@echo off 
set str=This string has a  lot  of spaces 
echo %str% 
set str=%str:=% 
echo %str%
:: Thisstringhasalotofspaces

替換

@echo off 
set str=This message needs changed. 
echo %str% 
set str=%str:needs=has% 
echo %str%
:: This message has changed.

數(shù)組

創(chuàng)建

  • 方法一:set
set a[0]=1
  • 方法二:值列表遍歷
@echo off 
set list=1 2 3 4 
(for %%a in (%list%) do ( 
echo %%a 
))

訪問

echo %a[0]%

修改

Set a[3]=4 

迭代

@echo off 
setlocal enabledelayedexpansion 
set topic[0]=comments 
set topic[1]=variables 
set topic[2]=Arrays 
set topic[3]=Decision making 
set topic[4]=Time and date 
set topic[5]=Operators 
for /l %%n in (0,1,5) do ( 
echo !topic[%%n]! 
)

for循環(huán)移動(dòng)范圍的/L參數(shù)用于迭代數(shù)組。

數(shù)組長(zhǎng)度

@echo off 
set Arr[0]=1 
set Arr[1]=2 
set Arr[2]=3 
set Arr[3]=4 
set "x=0" 
:SymLoop 
if defined Arr[%x%] ( 
call echo %%Arr[%x%]%% 
set /a "x+=1"
GOTO :SymLoop 
)
echo "The length of the array is" %x%

結(jié)構(gòu)體

@echo off 
set len=3 
set obj[0].Name=Joe 
set obj[0].ID=1 
set obj[1].Name=Mark 
set obj[1].ID=2 
set obj[2].Name=Mohan 
set obj[2].ID=3 
set i=0 
:loop 
if %i% equ %len% goto :eof 
set cur.Name= 
set cur.ID=
for /f "usebackq delims==.tokens=1-3" %%j in (`set obj[%i%]`) do ( 
set cur.%%k=%%l 
) 
echo Name=%cur.Name% 
echo Value=%cur.ID% 
set /a i=%i%+1 
goto loop

if語句

if %c%==15 (echo "The value of variable c is 15") else (echo "Unknown value") 

if defined :變量是否存在

if defined str1 echo "Variable str1 is defined"

if exists:文件是否存在

if exist C:\set3.txt (echo "File exists") else (echo "File does not exist")

if errorlevel:測(cè)試運(yùn)行的最后一個(gè)命令的退出代碼

if errorlevel n somecommand

各種命令發(fā)出整數(shù)退出代碼來表示命令的狀態(tài)。 通常,如果命令成功完成,則命令通過傳遞0;如果命令失敗,命令通過傳遞1。

for語句

  • %variable 指定一個(gè)單一字母可替換的參數(shù)。注意:批處理腳本中使用%%variable
  • (set) 指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。
  • command 指定對(duì)每個(gè)文件執(zhí)行的命令。
  • command-parameters 為特定命令指定參數(shù)或命令行開關(guān)。

/d

/r

/l

/f

goto語句

@echo off 
SET /A a=5 
if %a%==5 goto :labela 
if %a%==10 goto :labelb
:labela 
echo "The value of a is 5" 
exit /b 0
:labelb 
echo "The value of a is 10"

運(yùn)算符

關(guān)系運(yùn)算符

運(yùn)算符備注
EQU相等
NEQ不等
LSS左小于右
LEQ小于等于
GTR大于
GEQ大于等于

系統(tǒng)日期

echo %DATE%

日期格式化

@echo off 
echo/Today is: %year%-%month%-%day% 
goto :EOF 
setlocal ENABLEEXTENSIONS 
set t=2&if "%date%z" LSS "A" set t=1 
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo/^|date') do ( 
for /f "tokens=%t%-4 delims=.-/ " %%d in ('date/t') do ( 
set %%a=%%d&set %%b=%%e&set %%c=%%f)) 
endlocal&set %1=%yy%&set %2=%mm%&set %3=%dd%&goto :EOF

系統(tǒng)時(shí)間

echo %TIME%

輸入輸出

  • 0:stdin 標(biāo)準(zhǔn)輸入
  • 1:stdout 標(biāo)準(zhǔn)輸出
  • 2:stderr 錯(cuò)誤消息

重定向

DIR C:\ > lists.txt 2> &1
  • 使用文件編號(hào)和"&"前綴來組合stdout和stderr流

函數(shù)

:function_name 
Do_something 
EXIT /B 0
  • function_name是賦予函數(shù)的名字,它應(yīng)該與函數(shù)的實(shí)際功能相匹配。
  • EXIT語句用于確保函數(shù)正常退出.
:Display 
SET /A index=2 
echo The value of index is %index% 
EXIT /B 0

調(diào)用 call :function_name

@echo off
Rem main
SETLOCAL
CALL :Display 5 , 10
EXIT /B %ERRORLEVEL%
Rem function
:Display
echo The value of parameter 1 is %~1
echo The value of parameter 2 is %~2
EXIT /B 0
  • 確保在主程序中放入EXIT / B%ERRORLEVEL%語句,以便將主程序的代碼與函數(shù)分開。
  • 使用~1來訪問發(fā)送給函數(shù)的第一個(gè)參數(shù),同樣使用~2來訪問第二個(gè)參數(shù)。

進(jìn)程

查看進(jìn)程列表TASKLIST

:: 獲取內(nèi)存大于40MB的進(jìn)程
tasklist /fi "memusage gt 40000"
/S system指定要連接的遠(yuǎn)程系統(tǒng)
/U [domain]user指定命令應(yīng)在其下執(zhí)行的用戶上下文
/P [password]指定給定用戶上下文的密碼。 提示輸入,如果省略。
/M [module]列出當(dāng)前使用給定的exe / dll名稱的所有任務(wù)。 如果未指定模塊名稱,則顯示所有已加載的模塊。
/SVC顯示每個(gè)進(jìn)程中托管的服務(wù)。
/V顯示詳細(xì)的任務(wù)信息。
/FI filter顯示一組符合過濾器指定條件的任務(wù)。
/FO format指定輸出格式。 有效值:TABLE,LIST,CSV。
/NH指定“列標(biāo)題”不應(yīng)顯示在輸出中。 僅適用于TABLE和CSV格式。
:: 獲取內(nèi)存大于40MB的進(jìn)程
tasklist /fi "memusage gt 40000"

終止進(jìn)程

START "title" [/D path] [options] "command" [parameters]
/S system指定要連接的遠(yuǎn)程系統(tǒng)
/U [domain]user指定命令應(yīng)在其下執(zhí)行的用戶上下文。
/P [password]指定給定用戶上下文的密碼。 提示輸入,如果省略。
/FI FilterName應(yīng)用過濾器來選擇一組任務(wù),允許使用*通配符。
/PID processID指定要終止的進(jìn)程的PID。使用TaskList來獲取PID。
/IM ImageName指定要終止的進(jìn)程的映像名稱。 通配符*可用于指定所有任務(wù)或圖像名稱。
/T終止指定的進(jìn)程以及由其啟動(dòng)的任何子進(jìn)程。
/F指定強(qiáng)制終止進(jìn)程。
:: 殺死(終止)打開的記事本任務(wù)
taskkill /f /im notepad.exe
:: 殺死了一個(gè)ID為9901的進(jìn)程
taskill /pid 9901

啟動(dòng)進(jìn)程

START "title" [/D path] [options] "command" [parameters]
titleCMD窗口標(biāo)題欄的文本(必需)
path起始目錄。
command命令,批處理文件或可執(zhí)行程序運(yùn)行。
parameters傳遞給命令的參數(shù)

options:

/MIN啟動(dòng)窗口最小化。
/MAX啟動(dòng)窗口最大化。
/LOW使用IDLE優(yōu)先級(jí)。
/NORMAL使用NORMAL優(yōu)先級(jí)。
/ABOVENORMAL使用ABOVENORMAL優(yōu)先級(jí)。
/BELOWNORMAL使用BELOWNORMAL優(yōu)先級(jí)。
/HIGH使用HIGH優(yōu)先級(jí)。
/REALTIME使用REALTIME優(yōu)先級(jí)。
:: 在新窗口中運(yùn)行批處理腳本test.bat。 窗口將以最小化模式啟動(dòng),并且指定標(biāo)題為:“Test Batch Script”。
START "Test Batch Script" /Min test.bat
:: 在另一個(gè)進(jìn)程中運(yùn)行Microsoft Word,然后在MS Word中打開文件TESTA.txt
START "" "C:\Program Files\Microsoft Office\Winword.exe" "D:\test\TESTA.txt"

別名

dw=dir /w

當(dāng)要執(zhí)行dir /w命令時(shí),可以簡(jiǎn)單地鍵入dw這個(gè)單詞。dw這個(gè)詞現(xiàn)在已經(jīng)成為命令dir /w的別名。

doskey 別名管理

DOSKEY [options] [macroname=[text]]

創(chuàng)建

@echo off
doskey cd=cd/test
doskey d=dir

刪除

@echo off
doskey cd=cd/test
doskey d=dir
d=

將d的值設(shè)置為NULL,所以宏d將被刪除。

管道(|)

管道運(yùn)算符(|)將一個(gè)命令的輸出(默認(rèn)為STDOUT)引導(dǎo)到另一個(gè)命令的輸入(默認(rèn)為STDIN)。

:: 兩個(gè)命令同時(shí)啟動(dòng),但是sort命令暫停,直到它接收到dir命令的輸出。 
:: sort命令使用dir命令的輸出作為輸入,然后將其輸出發(fā)送到句柄1(即STDOUT)。
dir C:\ | sort

到此這篇關(guān)于教你編寫bat腳本W(wǎng)indows批處理的文章就介紹到這了,更多相關(guān)bat腳本W(wǎng)indows批處理內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

香港服務(wù)器租用

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部