
- 批處理指令碼教程
- 批處理指令碼 - 首頁
- 批處理指令碼 - 概述
- 批處理指令碼 - 環境
- 批處理指令碼 - 命令
- 批處理指令碼 - 檔案
- 批處理指令碼 - 語法
- 批處理指令碼 - 變數
- 批處理指令碼 - 註釋
- 批處理指令碼 - 字串
- 批處理指令碼 - 陣列
- 批處理指令碼 - 決策
- 批處理指令碼 - 運算子
- 批處理指令碼 - 日期和時間
- 批處理指令碼 - 輸入/輸出
- 批處理指令碼 - 返回程式碼
- 批處理指令碼 - 函式
- 批處理指令碼 - 程序
- 批處理指令碼 - 別名
- 批處理指令碼 - 裝置
- 批處理指令碼 - 登錄檔
- 批處理指令碼 - 網路
- 批處理指令碼 - 列印
- 批處理指令碼 - 除錯
- 批處理指令碼 - 日誌記錄
- 批處理指令碼資源
- 批處理指令碼 - 快速指南
- 批處理指令碼 - 有用資源
- 批處理指令碼 - 討論
批處理指令碼 - 註釋
為建立的指令碼添加註釋或文件始終是一個好習慣。這對於維護指令碼以瞭解指令碼的實際作用是必需的。
例如,考慮以下沒有任何形式註釋的程式碼片段。如果任何未開發以下指令碼的普通使用者嘗試理解該指令碼,則該使用者需要花費大量時間才能理解指令碼的實際作用。
ECHO OFF IF NOT "%OS%"=="Windows_NT" GOTO Syntax ECHO.%* | FIND "?" >NUL IF NOT ERRORLEVEL 1 GOTO Syntax IF NOT [%2]==[] GOTO Syntax SETLOCAL SET WSS= IF NOT [%1]==[] FOR /F "tokens = 1 delims = \ " %%A IN ('ECHO.%~1') DO SET WSS = %%A FOR /F "tokens = 1 delims = \ " %%a IN ('NET VIEW ^| FIND /I "\\%WSS%"') DO FOR /F "tokens = 1 delims = " %%A IN ('NBTSTAT -a %%a ^| FIND /I /V "%%a" ^| FIND "<03>"') DO ECHO.%%a %%A ENDLOCAL GOTO:EOF ECHO Display logged on users and their workstations. ECHO Usage: ACTUSR [ filter ] IF "%OS%"=="Windows_NT" ECHO Where: filter is the first part of the computer name^(s^) to be displayed
使用 Rem 語句添加註釋
在批處理指令碼中建立註釋有兩種方法;一種是透過 Rem 命令。Rem 語句後面的任何文字都將被視為註釋,並且不會被執行。以下是此語句的通用語法。
語法
Rem Remarks
其中“備註”是要新增的註釋。
以下示例展示了Rem命令的簡單用法。
示例
@echo off Rem This program just displays Hello World set message=Hello World echo %message%
輸出
以上命令產生以下輸出。您會注意到包含 Rem 語句的行不會被執行。
Hello World
使用 :: 語句添加註釋
在批處理指令碼中建立註釋的另一種方法是透過 :: 命令。:: 語句後面的任何文字都將被視為註釋,並且不會被執行。以下是此語句的通用語法。
語法
:: Remarks
其中“備註”是要新增的註釋。
以下示例展示了“::”命令的用法。
示例
@echo off :: This program just displays Hello World set message = Hello World echo %message%
輸出
以上命令產生以下輸出。您會注意到包含 :: 語句的行不會被執行。
Hello World
注意 - 如果您有太多行的 Rem,它可能會降低程式碼速度,因為最終批處理檔案中的每一行程式碼仍然需要執行。
讓我們看看在本主題開頭看到的那個大型指令碼的示例,看看添加了文件後它是什麼樣子。
::=============================================================== :: The below example is used to find computer and logged on users :: ::=============================================================== ECHO OFF :: Windows version check IF NOT "%OS%"=="Windows_NT" GOTO Syntax ECHO.%* | FIND "?" >NUL :: Command line parameter check IF NOT ERRORLEVEL 1 GOTO Syntax IF NOT [%2]==[] GOTO Syntax :: Keep variable local SETLOCAL :: Initialize variable SET WSS= :: Parse command line parameter IF NOT [%1]==[] FOR /F "tokens = 1 delims = \ " %%A IN ('ECHO.%~1') DO SET WSS = %%A :: Use NET VIEW and NBTSTAT to find computers and logged on users FOR /F "tokens = 1 delims = \ " %%a IN ('NET VIEW ^| FIND /I "\\%WSS%"') DO FOR /F "tokens = 1 delims = " %%A IN ('NBTSTAT -a %%a ^| FIND /I /V "%%a" ^| FIND "<03>"') DO ECHO.%%a %%A :: Done ENDLOCAL GOTO:EOF :Syntax ECHO Display logged on users and their workstations. ECHO Usage: ACTUSR [ filter ] IF "%OS%"=="Windows_NT" ECHO Where: filter is the first part of the computer name^(s^) to be displayed
您現在可以看到,對於未開發程式碼的使用者來說,程式碼變得更容易理解,因此更易於維護。
廣告