1樓:孤星
1.set /a num=%random%%%%s%+1
夾在中間的%%是指求模的意思,也就是用隨機數除以%s%後得出的餘數.
假如%s%的值為100,那麼%random%%%100就是用隨機數除以100然後取餘數,此時餘數就只會在0-99之間了,後面再+1,num的值也就是1-100之間了.
2.if not defined num%num%
如果num%num%這個變數未定義或為空值,則執行後面的語句.if not defined就是檢測變數是否被定義或為空值.
3.call echo %%num%%
在if或for語句中設定的變數,如果要再次在if或for命令內使用.此時的%num%為區域性延遲變數,是不會被識別的,用call擴充套件到全域性變數就可以顯示了,此時一個%號就要用兩個表示%%.
或開始延遲變數後,%號用!來表示:echo !num!
另:此批處理不需要call,直接echo %num%就行,它還未涉及到延遲變數.
說的不夠專業,不知你理解否~?.呵...
2樓:乘若蕊夷英
%n 用作引數變數,n=;如:%0代表本身,%1-%9代表某個替代的變數;
%i;%%i的區別:在cmd視窗模式用%i,批處理模式中則要用%%i;兩種意思是一樣的,但不同模式,使用的%個數不一樣!
%a%這個是變數的引用;假定
seta=
定義一個變數,那個顯示變數a
就是echo
%a%$
這個符號在prompt命令中,後跟一個字母被dos定義了特殊意義;如
prompt
$g$p表示提示字元是當前驅動器的目錄,$t顯示即時時間;在doskey的巨集命令中,變數不再是%a,而是$a,即變數要用$開頭;在延遲變數中,變數也是以$開頭;
都是變數的一些用法,建議你參考一些《p處理高階教程》,裡面講得交詳細;可以到我網盤提取資料;
批處理中%與%%有什麼區別
3樓:匿名使用者
一、指代不同
1、%:表示變數的引用。
2、%%:只有在批處理裡面才寫 兩個 %% 號表示變數,變數是for 語句裡面 特有的變數。
二、用法不同
1、%:變數的引用@echo offset a=123 rem定義一個變數a 賦值為123echo %a% rem。
2、%%:for %%i in (1 2 3 4 5 ) do echo %%i,批處理中用兩個 %%,其實是編譯器編譯的時候要遮蔽一個%。
三、語法不同
1、%:專門儲存外部引數的,就是執行批處理時加的引數。只有 %1 %2 %3 %4 ...... %9。
2、%%:for %%variable in (set) do command [command-parameters]。
4樓:玉其英侍綾
%是個escape字元,通常將之譯為轉義字元,但也有更形象的譯名脫逸字元、逃逸字元等。也就是說%不僅僅將與其相關的特定字串轉義並替換為特定字串,而且自身也會被「脫逸」。而且類似於c語言中的轉義字元"\",雙%會轉義並脫逸為單%,四%則脫為雙%。
除了for迴圈變數外,批處理變數的脫逸符要成對使用,就像數學四則運算的括號一樣。
call
setb=%%a:~0,%c%%%
就你舉得這個例子來講,最裡面一對單%相當於四則運算裡的小括號,外面的一對雙%相當於中括號,再有3
個%就相當於大括號
5樓:陽光上的橋
在命令列下,自定義變數使用%i,在批處理檔案裡面,自定義變數必須使用%%i,功能完全相同,只是語法要求不同地方的不同形式。
6樓:孤星
for /f i%
會有這種表示方法?..從沒見過,怕是會出錯吧..
你執行這些沒提示出錯..??
在cmd中,for後面的變數用%加一個字母表示,如%i但實際批處理中兩上%%,在cmd解析的時候會當一個,所以要%%i表示,至於你上面的i%還真沒見過..
7樓:樹莞憑豔卉
%i是在for語句中需要傳遞的引數的變數,其在dos下寫成%i但在批處理中就要寫成%%i
批處理中%和%%的用法有哪些
8樓:她是我的小太陽
1.如果是 %a% 這種形式 ,就是變數的引用
@echo off
set a=123 rem定義一個變數a 賦值為123
echo %a% rem顯示出變數a的值(如果不加% %系統會把a當字元處理了,不會當成變數的)
2.%%i 這種變數是for 語句裡面 特有的變數(還有一種是外部變數,接受外部引數的格式是%1 -%9 共9個變數),只有在批處理裡面才寫 兩個 %% 號表示變數,cmd中只用 一個 % 號。反正只要你在批處理檔案裡面用 for,變數就用 %%。
例如批處理中的寫法
for %%i in (1 2 3 4 5 ) do echo %%i
為什麼批處理中用兩個 %%,其實是編譯器編譯的時候要遮蔽一個%
在cmd視窗中寫法
for %i in (1 2 3 4 5 ) do echo %i
3.現在說下外部變數,是系統制定的,只有9個,專門儲存外部引數的,就是執行批處理時加的引數。只有 %1 %2 %3 %4 ...... %9
例如 @echo off
echo %1
echo %2
echo %3
echo %4
將上面的**複製到記事本。儲存格式為 bat
現在怎樣傳遞引數給這個批處理,如下
在開始》執行 裡面輸入 cmd 確定
在彈出來的視窗中 輸入 上面 批處理檔案 的 完全路徑名,然後就加要傳遞的引數了 例如 c:\text.bat aaaa bbbb cccc dddd eeeee
上面 aaaa bbbb cccc dddd eeeee
就是傳遞給 批處理 「引數」這些引數 會儲存在 %1至 %9 這9個變數名,最多隻能儲存 9 個。執行下就知道了,上面批處理檔案中 %1變數儲存的是aaaa
%2 儲存的是 bbbb
%3 儲存的是 cccc
%4 儲存的是 dddd
%5 是 eeee 上面沒有用到 %5變數
9樓:月下吹牛
%0為批處理本身的絕對路徑,%1為第一個引數,以此類推至%9。%%i在for裡面回用到,更多用法請for/?。set/a裡面%%為取餘數,a%%b為a除以b的餘數。
10樓:匿名使用者
看不懂也不要追問了。。。等下坐車回老家了。
@echo off
set a=789
echo %a%
pause
call :str 963
pause
for /l %%l (4,1,6) do (set /p=%%l )pause :str echo %1 goto :eof 11樓:匿名使用者 %是直接用在cmd ui介面的。而%%是寫入cmd檔裡面的。2者效果一致,這是我的經驗。。請高手斧正 12樓:匿名使用者 for /f "delims= usebackq" %%i in ("*.*") do (someting) echo %time:~0,5% start cmd.exe call %0 諸如此類。。 批處理命令中的%%n是什麼意思 13樓: 一般出現在for 迴圈中, 表示一個變數。 例如:for /l %%n in (1,1,5) do echo %%n 會依次顯示1,2,3,4,5 如果直接在命令列中就要改成%n for /l %n in (1,1,5) do echo %n 14樓:匿名使用者 看整條語句,不過一般指變數n 你可以在每一條命令後用 連線一個處理出錯的命令嘛,至於是讓它終止還是繼續執行後續命令自己去編 補充 既然不想另存一個配置檔案,那就列在批處理最下方,待批處理 安排就緒,再定skip n中的n 即倒數第31行在批處理中的行數 類似如下形式 當然你可以不用 而根據 errorlevel 用if分別作不同... 總得來說,以後寫批處理的時候一定要注意,千萬不要將批處理儲存為跟系統自身的命令一樣,也不要在批處理中寫有可能呼叫自身檔名的命令。你第一次說會執行很多次,估計是你把 上面的 儲存為1.bat了 在批處理中,並不是用來拼接字串的,它的作用是用來分隔命令的,也就是說你的 set a b a 就造價於以下兩... 你可以檢視我一個回答貼,那裡我提供了一個批處理的關機工具,只有在你插入特定u盤的情況下,電腦不會關機,否則會時間隨機性的關機。效果還是不錯的。修改裡面引數 可以設定固定時間的關機。set ws createobject wscript.shell ws.run cmd c c date comput...批處理錯誤返回問題,批處理執行錯誤
批處理問題
xp自動批處理的設計