批處理 筆記

2021-09-30 09:55:29 字數 2234 閱讀 8400

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 此行...