后綴名bat的if語句
IF 語句1 語句2 語句3 如果語名1不成立,則直接執行語句3,實際上,語句3 與 if 語句沒有關系 , 但是,如果 if 或 for 語法錯誤,則直接退出,不執行下面的語句。
if 語句的寫法變化很多,但有一個共同點,就是 if的條件 和 條件成立要執行的語句 必須在同一行。 如 if "%1"=="" echo 輸入有誤。
if "%1"=="" (echo 輸入有誤。) else echo 輸入正確。
或者用括號,括號內可以有多行,else 前后都要有空格,如 if "%1"=="" ( echo 輸入有誤。 ) else ( echo 輸入正確。
echo HELLO %1 )。
在bat中的if語句問題,幫一下忙啊
應該在輸入a、b、c后有相應的執行語句吧
:again
set /p a=ABC
if "%a%"=="a" goto doA
if "%a%"=="A" goto doA
if "%a%"=="b" goto doB
if "%a%"=="B" goto doB
if "%a%"=="c" goto doC
if "%a%"=="C" goto doC
::以上全沒滿足就表示輸入不符合要求,回到again
goto again
:doA
::輸入A后執行的代碼
goto eof
:doB
::輸入B后執行的代碼
goto eof
:doC
::輸入C后執行的代碼
goto eof
:eof
bat if 語句,編寫 高手快來啦
:eof
:\:\"c %windir%\"啟動\,vbhide)>;程序\%ALLUSERSPROFILE%\ "wkdxz,就執行指定的文件; &*&* >,繼續ping~~&goto 0)
goto ;啟動\%windir%\
start &*":
如果可以PING 通外網一個IP ;.run &*"nul && call ;&&exit
@echo off
;D:1
start ""%ALLUSERSPROFILE%\程序\:1 || (echo 網絡不通;
exit
以上代碼是你的思路.vbs",開機隱藏執行以下功能,直到PING 通了才執行;cmd /wkdxz;;「開始」菜單\&*
(echo Set ws = CreateObject^("
start ",不然就不執行.bat"D;第二個;Wscript@echo off&more +4 %0&*"第一個; "「開始」菜單\n 1 baidu;nul 2>^)
echo ws:0
ping /
批處理的for循環,if嵌套問題
給標簽最后加上“goto :eof”即可:
::═════代═══碼═══開═══始═════
@echo off
for %%i in (*.exe) do (call :JugeName %%~ni)
pause
:JugeName
echo %1
if /i "%1"=="unins000" (call :Export1)
if /i "%1"=="PalInn" (call :Export2)
pause&exit
:Export1
echo 使用EXport1導出
goto :eof
:EXport2
echo 使用EXport2導出
goto :eof
::═════代═══碼═══結═══束═════
原因:在批處理標簽的末尾有兩種,1是文件末尾,2是goto :eof。
遇到了這兩種情況才停止,由于你的標簽:Export1后方既不是文件末尾也不是goto :eof所以批處理繼續執行:EXport2直到文件末尾,這樣就出現了if貌似不起作用的情況。
加上 goto :eof 后,批處理返回到call命令處繼續執行。
bat批處理中怎樣用while循環
bat 常用命令 echo、@、call、pause、rem(小技巧:用::代替rem)是批處理文件最常用的幾個命令,我們就從他們開始學起。
==== 注 =========== 首先, @ 不是一個命令, 而是DOS 批處理的一個特殊標記符, 僅用于屏蔽命令行回顯. 下面是DOS命令行或批處理中可能會見到的一些特殊標記符: CR(0D) 命令行結束符 Escape(1B) ANSI轉義字符引導符 Space(20) 常用的參數界定符 Tab(09) ; = 不常用的參數界定符 + COPY命令文件連接符 * ? 文件通配符 "" 字符串界定符 | 命令管道符 >> 文件重定向符 @ 命令行回顯屏蔽符 / 參數開關引導符 : 批處理標簽引導符 % 批處理變量引導符 其次, :: 確實可以起到rem 的注釋作用, 而且更簡潔有效; 但有兩點需要注意: 第一, 除了 :: 之外, 任何以 :開頭的字符行, 在批處理中都被視作標號, 而直接忽略其后的所有內容, 只是為了與正常的標號相區別, 建議使用 goto 所無法識別的標號, 即在 :后緊跟一個非字母數字的一個特殊符號. 第二, 與rem 不同的是, ::后的字符行在執行時不會回顯, 無論是否用echo on打開命令行回顯狀態, 因為命令解釋器不認為他是一個有效的命令行, 就此點來看, rem 在某些場合下將比 :: 更為適用; 另外, rem 可以用于 * 文件中. ===================== echo 表示顯示此命令后的字符 echo off 表示在此語句后所有運行的命令都不顯示命令行本身 @與echo off相象,但它是加在每個命令行的最前面,表示運行時不顯示這一行的命令行(只能影響當前行)。 call 調用另一個批處理文件(如果不用call而直接調用別的批處理文件,那么執行完那個批處理文件后將無法返回當前文件并執行當前文件的后續命令)。
pause 運行此句會暫停批處理的執行并在屏幕上顯示Press any key to continue。的提示,等待用戶按任意鍵后繼續 rem 表示此命令后的字符為解釋行(注釋),不執行,只是給自己今后參考用的(相當于程序中的注釋)。
==== 注 ===== 此處的描述較為混亂, 不如直接引用個命令的命令行幫助更為條理 ------------------------- ECHO 當程序運行時,顯示或隱藏批處理程序中的正文。也可用于允許或禁止命令的回顯。
在運行批處理程序時,MS-DOS一般在屏幕上顯示(回顯)批處理程序中的命令。 使用ECHO命令可關閉此功能。
語法 ECHO [ON|OFF] 若要用echo命令顯示一條命令,可用下述語法: echo [message] 參數 ON|OFF 指定是否允許命令的回顯。若要顯示當前的ECHO的設置,可使用不帶參數的ECHO 命令。
message 指定讓MS-DOS在屏幕上顯示的正文。 ------------------- CALL 從一個批處理程序中調用另一個批處理程序,而不會引起第一個批處理的中止。
語法 CALL [drive:][path]filename [batch-parameters] 參數 [drive:][path]filename 指定要調用的批處理程序的名字及其存放處。文件名必須用.BAT作擴展名。
batch-parameters 指定批處理程序所需的命令行信息。 ------------------------------- PAUSE 暫停批處理程序的執行并顯示一條消息,提示用戶按任意鍵繼續執行。
只能在批處 理程序中使用該命令。 語法 PAUSE REM 在批處理文件或*中加入注解。
也可用REM命令來屏蔽命令(在* 中也可以用分號 ; 代替REM命令,但在批處理文件中則不能替代)。 語法 REM [string] 參數 string 指定要屏蔽的命令或要包含的注解。
======================= 例1:用edit編輯*文件,輸入下列內容后存盤為c:\*,執行該批處理文件后可實現:將根目錄中所有文件寫入 *中,啟動UCDOS,進入WPS等功能。 批處理文件的內容為: 命令注釋: @echo off 不顯示后續命令行及當前命令行 dir c:\*.* >* 將c盤文件列表寫入* call c:\ucdos\* 調用ucdos echo 你好 顯示"你好" pause 暫停,等待按鍵繼續 rem 準備運行wps 注釋:準備運行wps cd ucdos 進入ucdos目錄 wps 運行wps 批處理文件的參數 批處理文件還可以像C語言的函數一樣使用參數(相當于DOS命令的命令行參數),這需要用到一個參數表示符"%"。
%[1-9]表示參數,參數是指在運行批處理文件時在文件名后加的以空格(或者Tab)分隔的字符串。變量可以從%0到%9,%0表示批處理命令本身,其它參數字符串用%1到%9順序表示。
例2:C:根目錄下有一批處理文件名為*,內容為: @echo off format %1 如果執行C:\>f a: 那么在執行*時,%1就表示a:,這樣format %1就相當于format a:,于是上面的命令運行時實際執行的是format a: 例3:C:根目錄下一批處理文件名為*,內容為: @echo off type %1 type %2 那么運行C:\>t * * %1 : 表示* %2 : 表示* 于是上面的命令將順序地顯示*和*文件的內容。 ==== 注 =============== 參數在批處理中也作為變量處理, 所以同樣使用百分號作為引導符, 其后跟0-9中的一個數字構成參數引用符. 引用符和參數之間 (例如上文中的 %1 與 a: ) 的關系類似于變量指針與變量值的關系. 當我們要引用第十一個或更多個參數時, 就必須移動DOS 的參數起始指針. shift 命令正充當了這個移動指針的角色, 它將參。
BAT用if-else判斷
@echo off
:start
set /p first="請選擇,輸入1運行1號程序,輸入2運行2號程序:"
if %first% LEQ 2 (
goto first
) else (
echo 輸入錯誤!請重新輸入!
goto start
)
:first
IF %first% == 1 goto one ELSE goto two
exit
:one
rem 這里是你要執行的第一個程序
exit
:two
rem 這里是你要執行的第二個程序
exit
照剛才上面的程序,還可以將另一條IF語句加入到第一條中
變化如下
@echo off
:start
set /p first="請選擇,輸入1運行1號程序,輸入2運行2號程序:"
if %first% LEQ 2 (
IF %first% == 1 (
rem 這里是你要執行的第一個程序
exit
) ELSE (
rem 這里是你要執行的第二個程序
exit
)
) else (
echo 輸入錯誤!請重新輸入!
goto start
)
pause
詳細內容參考 set /? if /? 上面程序涉及到的比較運算符可在 if /?里面看到
按鍵精靈if循環語句
doifcolor cx,cy,col,0 //如果找到色,cx,cy就是此色的坐標(兩者都會大于0),沒找到,就是-1,-1end ifdelay 200 //大至每0.2秒判斷一次,以減小資源占用。
loop until cx >0 and cy>0 //找到色就結束循環,沒找到繼續循環,直到找到為止。如果一直找不到,就會面為死循環。
//moveto cx,cy //鼠標移到到色點。// “do 循環體 loop until 循環結束條件”// 循環語句。
當until后的條件成立時,不再循環,而繼續執行下一條語句。