1樓:匿名使用者
@echo off
set /p str=請輸入任意長度的字串:
echo 你輸入了字串:"%str%"
call :stringlenth "%str%" num 這句呼叫stringlenth標號後的語句,並且使用str變數的值作為引數,然後字串num作為第二個引數,這個num是用來儲存返回的字串長度的
echo 字串長度為:%num%
pause
exit
然後是標號stringlenth後的語句
:stringlenth
set thestring=%~1 將第一個引數賦值給thestring,%1表示第一個引數,也就是str變數的值,%~1表示去掉外側的引號
if not defined thestring goto :eof 這句表示如果沒輸入字串就返回
set return=0 return初值為0,這個儲存字串的長度
:stringlenth_continue
set /a return+=1 return加上1
將thestring取值為自身從開始到倒數第二個字元間的字串,去掉最後一個字元
if defined thestring goto stringlenth_continue 如果thestring不為空,則返回stringlenth_continue標號執行,繼續將return的值加1,然後去掉最後一個字元,直到thestring為空
將return的值賦給使用第二個引數命名的變數
goto :eof 返回繼續執行呼叫的下條語句
2樓:匿名使用者
call :stringlenth "%str%" num
rem #這是呼叫:stringlenth標籤 ,後面是兩個引數,num 也是引數之一
:stringlenth
set thestring=%~1
rem #這裡的 %~1=%str%,就是上面傳遞的第一個引數.將"%str%"去掉兩端引號後賦值給%thestring%
if not defined thestring goto :eof
rem #如果 %thestring% 為空直接返回.
set return=0
:stringlenth_continue
rem #另一個標籤,用於迴圈.
set /a return+=1
if defined thestring goto stringlenth_continue
rem #%2就是上面傳遞的第二個引數 num,如果 %2 存在就將 %return% 賦值給 %2(num)
goto :eof
也可以將**開頭的 @echo off 改為 @echo on 或者刪除這行.就能看到批處理執行步驟.這樣更容易理解.上面的解釋看懂否.
求定時關機批處理
echo off title 自定義關機時間 sc config schedule start demand net start schedule color 17 mode con cols 80 lines 25 setshutdowntime echo for f tokens 1,2,3,4...
自動關機批處理檔案,求自動關機批處理
echo regedit4 reg.reg echo是輸出的意思,把regedit4寫入檔案reg.reg 是把輸出寫入檔案的意思,如果沒有 reg.reg 就是輸出到顯示屏 echo hkey local machine software microsoft windows currentvers...
批處理start命令,start批處理命令輸入使用者名稱密碼
c documents and settings administrator start 啟動另一個視窗執行指定的程式或命令。start title dpath i min max separate shared low normal high realtime abovenormal belown...