18. if
18.1 if not errorlevel number command
if errorlevel 這個句子必須放在某個命令的後面,執行命令後由 if errorlevel 來判斷命令的返回值
number 取值範圍為0-255,判斷時值的排列順序應該由大到小。返回的值大於等於指定的值時,條件成立
例子@echo off
dir c: rem退出**為》=1就跳至標題1處執行,>=0就跳至標題0處執行
if errorlevel 1 goto 1
if errorlevel 0 goto 0 rem 上面的兩行不可交換位置,否則失敗了也顯示成功。
:0 echo 命令執行成功! rem 程式執行完畢跳至標題exit處退出
goto exit
:1 echo 命令執行失敗! rem 程式執行完畢跳至標題exit處退出
goto exit
:exit
pause
18.2 if [not] string1==string2 command
str1和str2都為字元的資料,英文內字元的大小寫將看作不同,這個條件中的等於號必須是兩個
條件相等後執行後面餓command
為防止字串中含有空格,可用以下格式:
if [not] == command
if [not] [string1]==[string2] command
if [not] "string1"=="string2" command
18.3 if [not] exist filename command
exist filename為檔案或目錄存在的意思
echo off
if exist autoexec.bat echo 檔案存在!
if not exist autoexec.bat echo 檔案不存在!
19. setlocal 與變數延遲
問題的引入,
@echo off
set a=4
set a=5 & echo %a%
pause
結果:4
不輸出5的原因:總是讀取一行,並做了預處理,所以輸出結果為4
為能感知環境變數的動態變化,批處理設計變數延遲。簡而言之,在讀取了一條完整的語句之後,不立即對該行的變數賦值,而會在某個單條語句執行之前再進行賦值
@echo off
setlocal enabledelayedexpansion
set a=4
set a=5 & echo !a!
pause
結果:5 解說:啟動了變數延遲,得到了正確答案。變數延遲的啟動語句是「setlocal enabledelayedexpansion」,並且變數要用一對嘆號「!!」括起來(注意要用英文的嘆號),否則就沒有變數延遲的效果。
使用 setlocal enableddelayedexpansion 啟用變數延遲
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,5) do (
set a=%%i
echo !a!
) pause
@echo off
::目的:交換兩個變數的值,但是不使用臨時變數
::code by jm 2007-1-24 cmd@xp
::出處:
set var1=abc
set var2=123
echo 交換前: var1=%var1% var2=%var2%
set var1=%var2%& set var2=%var1%
echo 交換後: var1=%var1% var2=%var2%
pause
20. attrib 顯示或更改檔案屬性
attrib [+r|-r] [+a|-a] [+s|-s] [+h|-h] [[drive:] [path] filename] [/s [/d]]
+ 設定屬性。 - 清除屬性。 r 唯讀檔案屬性。 a 存檔檔案屬性。 s 系統檔案屬性。 h 隱藏檔案屬性。 [drive:][path][filename] 指定要處理的檔案屬性。 /s
處理當前資料夾及其子資料夾中的匹配檔案。 /d 也處理資料夾。
例: md autorun attrib +a +s +h autorun 上面的命令將建立資料夾autorun,然後將其設為存檔、系統、隱藏屬性
學習筆記 批處理4
定時關機 echo off title 定時關機程式 當前日期 date time 0,3 begin clsecho 歡迎使用 定時關機程式 echo 1.定時關機 2.倒計時關機 3.取消關機 echo 輸入序號然後按回車進行選擇 set p a 請做出選擇 if a 1 goto 1 if a...
批處理學習筆記
前言 批處理,也稱批處理指令碼。windows 環境下做開發,批處理 是乙個非常使用的工具,利用這個工具可以為專案開發提高很大的效率。window提供了很多的命令,通過批處理指令碼,組織這些命令,能夠很快速的做到很多事情,大多數是操作資料夾,操作檔案,啟動其他命令等等。具體例子有 工程打包輸出可執行...
bat批處理筆記(二)
是 end of file 的縮寫 在批處理作用主要有二 1 在無call的情況下,會直接退出批處理,此時等同於exit 2 在call的情況下,會中止call,繼續執行其他命令 echo off call str1 pause goto eof echo 此行 不會被執行 str1 echo 此行...