今天小編給大家分享一下windows如何新建bat格式文件的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站建設(shè)、柘城網(wǎng)絡(luò)推廣、微信小程序開(kāi)發(fā)、柘城網(wǎng)絡(luò)營(yíng)銷、柘城企業(yè)策劃、柘城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供柘城建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
“.bat”是指“批處理文件”,是一種可執(zhí)行文件,由一系列命令構(gòu)成,其中可以包含對(duì)其他程序的調(diào)用。在命令提示下輸入批處理文件的名稱,或者雙擊該批處理文件,系統(tǒng)就會(huì)調(diào)用cmd.exe按照該文件中各個(gè)命令出現(xiàn)的順序來(lái)逐個(gè)運(yùn)行它們。使用批處理文件可以簡(jiǎn)化日?;蛑貜?fù)性任務(wù)。
本教程操作環(huán)境:windows10系統(tǒng)、Dell G3電腦。
bat文件簡(jiǎn)介
bat文件是dos下的批處理文件。.bat文件是可執(zhí)行文件,由一系列命令構(gòu)成,其中可以包含對(duì)其他程序的調(diào)用。這個(gè)文件的每一行都是一條DOS命令(大部分時(shí)候就好像我們?cè)贒OS提示符下執(zhí)行的命令行一樣),你可以使用DOS下的Edit或者Windows的記事本(notepad)等任何文本文件編輯工具創(chuàng)建和修改批處理文件。
批處理(Batch),也稱為批處理腳本。顧名思義,批處理就是對(duì)某對(duì)象進(jìn)行批量的處理,通常被認(rèn)為是一種簡(jiǎn)化的腳本語(yǔ)言,它應(yīng)用于DOS和Windows系統(tǒng)中。
批處理文件是無(wú)格式的文本文件,它包含一條或多條命令。它的文件擴(kuò)展名為 .bat 或 .cmd。在命令提示下輸入批處理文件的名稱,或者雙擊該批處理文件,系統(tǒng)就會(huì)調(diào)用cmd.exe按照該文件中各個(gè)命令出現(xiàn)的順序來(lái)逐個(gè)運(yùn)行它們 [1] 。使用批處理文件(也被稱為批處理程序或腳本),可以簡(jiǎn)化日常或重復(fù)性任務(wù)。入侵者常常通過(guò)批處理文件的編寫來(lái)實(shí)現(xiàn)多工具的組合入侵、自動(dòng)入侵及結(jié)果提取等功能 。
新建bat格式文件步驟
1、在桌面右鍵,選擇新建-文本文檔;
2、輸入批處理代碼,點(diǎn)擊文件-另存為;
3、選擇好保存路徑,在下面將保存類型改為“所有文件(*.*)”,然后在文件名中輸入:文件名.bat 點(diǎn)擊保存;
4、創(chuàng)建完成后雙擊運(yùn)行
bat文件中常用指令
echo 命令
echo命令用于打開(kāi)回顯或關(guān)閉請(qǐng)求回顯功能,也可用于顯示消息。如果沒(méi)有任何參數(shù),echo命令將顯示當(dāng)前回顯設(shè)置 [1] 。
echo的命令格式為“echo [on/off] / [message]”。其中“/”代表選擇,“[]”表示類。這條命令的含義代表有3種輸出方式:echo on;echo off;echo [message]
@ 命令
@用于隱藏@后面的命令。批處理文件執(zhí)行時(shí),在命令行窗口中會(huì)顯示當(dāng)前正在運(yùn)行的命令,為了達(dá)到更好的隱蔽性,入侵者可以使用@命令隱藏 。
Sample:@echo off
@echo Now initializing the program,please wait a minite…
@format X: /q/u/autoset (format 這個(gè)命令是不可以使用/y這個(gè)參數(shù)的,但微軟留了autoset這個(gè)參數(shù)給我們,效果和/y是一樣的。)
goto 命令
goto命令用于跳轉(zhuǎn)到標(biāo)簽指定的位置并從標(biāo)簽的下一行命令開(kāi)始執(zhí)行。命令格式為“goto label”,其中l(wèi)abel為標(biāo)簽。標(biāo)簽的名字任意,但是最好是有意義的字母。在字母前需要加“:”號(hào)來(lái)表示這個(gè)字母是標(biāo)簽 [1] 。
語(yǔ)法:goto label
(label是參數(shù),指定所要轉(zhuǎn)向的批處理程序中的行。)
Sample:
if {%1}{} goto noparms if {%2}{} goto noparms(如果這里的if、%1、%2你不明白的話,先跳過(guò)去,后面會(huì)有詳細(xì)的解釋。) @Rem check parameters if null show usage :noparms echo Usage: monitor.bat ServerIP PortNumber goto end
標(biāo)簽的名字可以隨便起,但是最好是有意義的字母,字母前加個(gè):用來(lái)表示這個(gè)字母是標(biāo)簽,goto命令就是根據(jù)這個(gè):來(lái)尋找下一步跳到那里。最好有一些說(shuō)明,這樣別人看起來(lái)才會(huì)理解你的意圖。
rem 命令
注釋命令,在C語(yǔ)言中相當(dāng)與/--------/,它并不會(huì)被執(zhí)行,只是起一個(gè)注釋的作用 [1] ,便于別人閱讀和你自己日后修改。
格式:rem message
Sample:@Rem Here is the description.
pause 命令
掛起命令,當(dāng)批處理文件運(yùn)行到pause命令時(shí),會(huì)出現(xiàn)“請(qǐng)按任意鍵繼續(xù)…”的提示 [1] 。
運(yùn)行pause 命令時(shí),將顯示下面的消息:
Press any key to continue. . . Sample: @echo off :begin copy a:. d:\back echo Please put a new disk into driver A pause goto begin
在這個(gè)例子中,驅(qū)動(dòng)器 A 中磁盤上的所有文件均復(fù)制到d:\back中。顯示的注釋提示您將另一張磁盤放入驅(qū)動(dòng)器 A 時(shí),pause 命令會(huì)使程序掛起,以便您更換磁盤,然后按任意鍵繼續(xù)處理。
call 命令
用于在一個(gè)批處理程序中調(diào)用另一個(gè)批處理程序,此調(diào)用過(guò)程中只是暫時(shí)掛起父批處理程序,當(dāng)子批處理程序運(yùn)行完畢后會(huì)返回父批處理程序繼續(xù)執(zhí)行 。
常用的命令格式為“call [path] filename”,其中path是要調(diào)用的批處理文件的位置,可選,默認(rèn)是與父批處理程序在同一目錄下;filename用于指定子批處理程序的文件名,其必須包含有.cmd或.bat擴(kuò)展名 [1] 。
事實(shí)上call命令的格式不止這一種,但不常用,詳細(xì)情況可以在命令行窗口輸入call/?查看 [1] 。
語(yǔ)法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
參數(shù)
[Drive:][Path] FileName
指定要調(diào)用的批處理程序的位置和名稱。filename 參數(shù)必須具有 .bat 或 .cmd 擴(kuò)展名。
start 命令
調(diào)用外部程序,所有的DOS命令和命令行程序都可以由start命令來(lái)調(diào)用 [1] 。
常用參數(shù):
MIN 開(kāi)始時(shí)窗口最小化
SEPARATE 在分開(kāi)的空間內(nèi)開(kāi)始 16 位 Windows 程序
HIGH 在 HIGH 優(yōu)先級(jí)類別開(kāi)始應(yīng)用程序
REALTIME 在 REALTIME 優(yōu)先級(jí)類別開(kāi)始應(yīng)用程序
WAIT 啟動(dòng)應(yīng)用程序并等候它結(jié)束
parameters 這些為傳送到命令/程序的參數(shù)
執(zhí)行的應(yīng)用程序是 32-位 GUI 應(yīng)用程序時(shí),CMD.EXE 不等應(yīng)用程序終止就返回命令提示。如果在命令腳本內(nèi)執(zhí)行,該新行為則不會(huì)發(fā)生。
choice 命令
choice 使用此命令可以讓用戶輸入一個(gè)字符,從而運(yùn)行不同的命令 [1] 。使用時(shí)應(yīng)該加/c:參數(shù),c:后應(yīng)寫提示可輸入的字符,之間無(wú)空格。它的返回碼為1234……
如: choice /c:dme defrag,mem,end
將顯示
defrag,mem,end[D,M,E]?
Sample:
Sample.bat的內(nèi)容如下:
@echo off choice /c:dme defrag,mem,end if errorlevel 3 goto defrag (應(yīng)先判斷數(shù)值最高的錯(cuò)誤碼) if errorlevel 2 goto mem if errotlevel 1 goto end :defrag c:\dos\defrag goto end :mem mem goto end :end echo good bye
此文件運(yùn)行后,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然后if語(yǔ)句將作出判斷,d表示執(zhí)行標(biāo)號(hào)為defrag的程序段,m表示執(zhí)行標(biāo)號(hào)為mem的程序段,e表示執(zhí)行標(biāo)號(hào)為end的程序段,每個(gè)程序段最后都以goto end將程序跳到end標(biāo)號(hào)處,然后程序?qū)@示good bye,文件結(jié)束。
if 命令
if 表示將判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。有三種格式:
1.if “參數(shù)” == “字符串” 待執(zhí)行的命令
參數(shù)如果等于指定的字符串,則條件成立,運(yùn)行命令,否則運(yùn)行下一句 [1] 。(注意是兩個(gè)等號(hào))
如if "%1"“a” format a:
if {%1}{} goto noparms
if {%2}=={} goto noparms
2.if exist 文件名 待執(zhí)行的命令
如果有指定的文件,則條件成立,運(yùn)行命令,否則運(yùn)行下一句 [1] 。
如if existconfig.sysedit config.sys
3.if errorlevel / if not errorlevel 數(shù)字 待執(zhí)行的命令
如果返回碼等于指定的數(shù)字,則條件成立,運(yùn)行命令,否則運(yùn)行下一句 [1] 。
如if errorlevel 2 goto x2
DOS程序運(yùn)行時(shí)都會(huì)返回一個(gè)數(shù)字給DOS,稱為錯(cuò)誤碼errorlevel或稱返回碼,常見(jiàn)的返回碼為0、1 [1] 。
for 命令
for命令主要用于循環(huán)調(diào)用,該命令功能十分強(qiáng)大,有多種調(diào)用方法 [1] 。
for 命令是一個(gè)比較復(fù)雜的命令,主要用于參數(shù)在指定的范圍內(nèi)循環(huán)執(zhí)行命令。
在批處理文件中使用 FOR 命令時(shí),指定變量請(qǐng)使用 %%variable
for {%variable|%%variable} in (set) do command [ CommandLineOptions]
%variable 指定一個(gè)單一字母可替換的參數(shù)。
(set) 指定一個(gè)或一組文件??梢允褂猛ㄅ浞?/p>
command 指定對(duì)每個(gè)文件執(zhí)行的命令。
command-parameters 為特定命令指定參數(shù)或命令行開(kāi)關(guān)。
在批處理文件中使用 FOR 命令時(shí),指定變量請(qǐng)使用 %%variable
而不要用 %variable。變量名稱是區(qū)分大小寫的,所以 %i 不同于 %I
如果命令擴(kuò)展名被啟用,下列額外的 FOR 命令格式會(huì)受到
支持:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,則指定與目錄名匹配,而不與文件
名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-
檢查以 [drive:]path 為根的目錄樹(shù),指向每個(gè)目錄中的
FOR 語(yǔ)句。如果在 /R 后沒(méi)有指定目錄,則使用當(dāng)前
目錄。如果集僅為一個(gè)單點(diǎn)(.)字符,則枚舉該目錄樹(shù)。
FOR /L %variable IN (start,step,end) DO command [command-para
該集表示以增量形式從開(kāi)始到結(jié)束的一個(gè)數(shù)字序列。
因此,(1,1,5) 將產(chǎn)生序列 1 2 3 4 5,(5,-1,1) 將產(chǎn)生
序列 (5 4 3 2 1)。
FOR /F [“options”] %variable IN (file-set) DO command
FOR /F [“options”] %variable IN (“string”) DO command
FOR /F [“options”] %variable IN (command) DO command
或者,如果有 usebackq 選項(xiàng):
FOR /F [“options”] %variable IN (file-set) DO command
FOR /F [“options”] %variable IN (“string”) DO command
FOR /F [“options”] %variable IN (command) DO command
filenameset 為一個(gè)或多個(gè)文件名。繼續(xù)到 filenameset 中的下一個(gè)文件之前,每份文件都已被打開(kāi)、讀取并經(jīng)過(guò)處理。處理包括讀取文件,將其分成一行行的文字,然后將每行解析成零或更多的符號(hào)。然后用已找到的符號(hào)字符串變量值調(diào)用 For 循環(huán)。以默認(rèn)方式,/F 通過(guò)每個(gè)文件的每一行中分開(kāi)的第一個(gè)空白符號(hào)。跳過(guò)空白行。您可通過(guò)指定可選 "options"參數(shù)替代默認(rèn)解析操作。這個(gè)帶引號(hào)的字符串包括一個(gè)或多個(gè)指定不同解析選項(xiàng)的關(guān)鍵字。這些關(guān)鍵字為:eol=c - 指一個(gè)行注釋字符的結(jié)尾(就一個(gè))。skip=n - 指在文件開(kāi)始時(shí)忽略的行數(shù)。delims=xxx - 指分隔符集。這個(gè)替換了空格和跳格鍵的
默認(rèn)分隔符集。
tokens=x,y,m-n - 指每行的哪一個(gè)符號(hào)被傳遞到每個(gè)迭代的 for 本身。這會(huì)導(dǎo)致額外變量名稱的格式為一個(gè)范圍。通過(guò) nth 符號(hào)指定 m符號(hào)字符串中的最后一個(gè)字符星號(hào),那么額外的變量將在最后一個(gè)符號(hào)解析之分配并接受行的保留文本。
usebackq - 指定新語(yǔ)法已在下類情況中使用:
在作為命令執(zhí)行一個(gè)后引號(hào)的字符串并且引號(hào)字符為文字字符串命令并允許在 fi中使用雙引號(hào)擴(kuò)起文件名稱。
sample1: FOR /F “eol=; tokens=2,3* delims=,” %i in (myfile.txt) do command
會(huì)分析 myfile.txt 中的每一行,忽略以分號(hào)打頭的那些行,將每行中的第二個(gè)和第三個(gè)符號(hào)傳遞給 for 程序體;用逗號(hào)和/或空格定界符號(hào)。請(qǐng)注意,這個(gè) for 程序體的語(yǔ)句引用 %i 來(lái)取得第二個(gè)符號(hào),引用 %j 來(lái)取得第三個(gè)符號(hào),引用 %k來(lái)取得第三個(gè)符號(hào)后的所有剩余符號(hào)。對(duì)于帶有空格的文件名,您需要用雙引號(hào)將文件名括起來(lái)。為了用這種方式來(lái)使用雙引號(hào),您還需要使用 usebackq 選項(xiàng),否則,雙引號(hào)會(huì)被理解成是用作定義某個(gè)要分析的字符串的。%i 專門在 for 語(yǔ)句中得到說(shuō)明,%j 和 %k 是通過(guò)tokens= 選項(xiàng)專門得到說(shuō)明的。您可以通過(guò) tokens= 一行指定最多 26 個(gè)符號(hào),只要不試圖說(shuō)明一個(gè)高于字母 z 或Z 的變量。請(qǐng)記住,F(xiàn)OR變量是單一字母、分大小寫和全局的;同時(shí)不能有 52 個(gè)以上都在使用中。
您還可以在相鄰字符串上使用 FOR /F 分析邏輯;方法是,用單引號(hào)將括號(hào)之間的 filenameset 括起來(lái)。這樣,該字符串會(huì)被當(dāng)作一個(gè)文件中的一個(gè)單一輸入行。最后,您可以用 FOR /F 命令來(lái)分析命令的輸出。方法是,將括號(hào)之間的 filenameset 變成一個(gè)反括字符串。該字符串會(huì)被當(dāng)作命令行,傳遞到一個(gè)子 CMD.EXE,其輸出會(huì)被抓進(jìn)內(nèi)存,并被當(dāng)作文件分析。
因此,以下例子:
FOR /F “usebackq delims==” %i IN (set) DO @echo %i
會(huì)枚舉當(dāng)前環(huán)境中的環(huán)境變量名稱。
ping命令
Ping命令可以測(cè)試計(jì)算機(jī)名和計(jì)算機(jī)的IP地址,嚴(yán)正與對(duì)方計(jì)算機(jī)的連接,通過(guò)向?qū)Ψ街鳈C(jī)發(fā)送“網(wǎng)際消息控制協(xié)議 (ICMP)”回響請(qǐng)求消息來(lái)驗(yàn)證與對(duì)方 TCP/IP 計(jì)算機(jī)的 IP 級(jí)連接?;仨憫?yīng)答消息的接收情況將和往返過(guò)程的次數(shù)一起顯示出來(lái)。Ping 是用于檢測(cè)網(wǎng)絡(luò)連接性、可到達(dá)性和名稱解析的疑難問(wèn)題的主要 TCP/IP 命令。如果不帶參數(shù),ping 將顯示幫助。
AT命令
AT 命令安排在特定日期和時(shí)間運(yùn)行命令和程序。
要使用 AT 命令,計(jì)劃服務(wù)必須已在運(yùn)行中。
AT [\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\computername] time [/INTERACTⅣE] [ /EVERY:date[,…] | /NEXT:date[,…]] “command”
\computername 指定遠(yuǎn)程計(jì)算機(jī)。如果省略這個(gè)參數(shù),會(huì)計(jì)劃在本地計(jì)算機(jī)上運(yùn)行命令。
id 指定給已計(jì)劃命令的識(shí)別號(hào)。
/delete 刪除某個(gè)已計(jì)劃的命令。如果省略 id,計(jì)算機(jī)上所有已計(jì)劃的命令都會(huì)被刪除。
/yes 不需要進(jìn)一步確認(rèn)時(shí),跟刪除所有作業(yè)的命令一起使用。
time 指定運(yùn)行命令的時(shí)間。
/interactive 允許作業(yè)在運(yùn)行時(shí),與當(dāng)時(shí)登錄的用戶桌面進(jìn)行交互。
/every:date[,…] 指定在每周或每月的特定日期運(yùn)行命令。如果省略日期,則默認(rèn)為在的運(yùn)行。
/next:date[,…] 指定在下一個(gè)指定日期(如,下周四)運(yùn)行命令。如果省略日期,則默認(rèn)為在的運(yùn)行。
“command” 準(zhǔn)備運(yùn)行的 Windows NT 命令或批處理程序。
del命令
del命令用于刪除一個(gè)或多個(gè)文件。其命令格式為“del [/P] [/F] [/S] [/Q][/A[[:]attributes]]names”。其中P用于刪除每一個(gè)文件之前提示確認(rèn);F用于強(qiáng)制刪除只讀文件;S用于從所有子目錄刪除指定文件;Q為安靜模式,刪除全局通配符時(shí),不要求確認(rèn);A用于根據(jù)屬性選擇要?jiǎng)h除的文件;attributes用于對(duì)應(yīng)A所要?jiǎng)h除文件的屬性,包括的參數(shù)值中R代表只讀文件,S代表系統(tǒng)文件,H代表隱藏文件,A代表存檔文件,-表示“否”的前綴:names用于指定一個(gè)文件名或者一個(gè)目錄,指定目錄時(shí),其中所包含的所有文件都會(huì)被刪除 。
net命令
這里只介紹開(kāi)啟網(wǎng)絡(luò)服務(wù)和關(guān)閉網(wǎng)絡(luò)服務(wù)的命令格式。
“net start[service]”用于開(kāi)啟網(wǎng)絡(luò)服務(wù),servlce用于指定需要開(kāi)啟的網(wǎng)絡(luò)服務(wù)名,若不指定則開(kāi)啟所有能夠開(kāi)啟的網(wǎng)絡(luò)服務(wù) 。
“net stop service”用于關(guān)閉網(wǎng)絡(luò)服務(wù),其中servlce是需要關(guān)閉的網(wǎng)絡(luò)服務(wù)名,此項(xiàng)必須指定。
特殊符號(hào)
&
順序執(zhí)行多條命令,而不管命令是否執(zhí)行成功
例:copy nul 5.txt & echo 666 >>5.txt & more 5.txt
創(chuàng)建5.txt文檔,向5.txt文檔中寫入內(nèi)容“666”,輸出5.txt的內(nèi)容。
&&
順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行出錯(cuò)的命令后將不執(zhí)行后面的命令
||
順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行正確的命令后將不執(zhí)行后面的命令(即:只有前面命令執(zhí)行錯(cuò)誤時(shí)才執(zhí)行后面命令)
|
管道命令 前一個(gè)命令的執(zhí)行結(jié)果輸出到后一個(gè)命令 如:help|more
“>
” 清除文件中原有的內(nèi)容后再寫入
“>>
” 追加內(nèi)容到文件末尾,而不會(huì)清除原有的內(nèi)容主要將本來(lái)顯示在屏幕上的內(nèi)容輸出到指定文件中指定文件如果不存在,則自動(dòng)生成該文件
# 腳本文件的標(biāo)準(zhǔn)開(kāi)頭 #!/bin/bash echo $0 # 輸出當(dāng)前文件名 echo $1,$2 #輸出輸入的第一個(gè)、第二個(gè)參數(shù) echo $# # 參數(shù)個(gè)數(shù) echo $@ # 所有的參數(shù)列表 echo (1+1) echo $? #輸出上一條命令的返回結(jié)果 # cd $(dirname $0) 就是進(jìn)入到當(dāng)前文件的父級(jí)目錄下 # pwd 就是當(dāng)前的絕對(duì)位置 echo $(cd $(dirname $0); pwd)
以上就是“windows如何新建bat格式文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。