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