日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BAT教程 第三节(FOR命令中的变量)

發(fā)布時間:2025/7/25 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BAT教程 第三节(FOR命令中的变量) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

FOR命令中有一些變量,他們的用法許多新手朋友還不太了解,今天給大家講解他們的用法!
先把FOR的變量全部列出來
:
???? ~I????????? -
刪除任何引號("),擴展
%I
???? %~fI??????? -
%I擴展到一個完全合格的路徑名

???? %~dI??????? -
僅將%I擴展到一個驅(qū)動器號
???? %~pI??????? -
僅將%I擴展到一個路徑
???? %~nI??????? -
僅將%I擴展到一個文件
???? %~xI??????? -
僅將%I擴展到一個文件擴展名
???? %~sI??????? -
擴展的路徑只含有短名
???? %~aI??????? -
%I擴展到文件的文件屬性
???? %~tI??????? -
%I擴展到文件的日期/時間
???? %~zI??????? -
%I擴展到文件的大小
???? %~$PATH:I?? -
查找列在路徑環(huán)境變量的目錄,并將%I擴展
??????????????????
到找到的第一個完全合格的名稱。如果環(huán)境變量名
??????????????????
未被定義,或者沒有找到文件,此組合鍵會擴展到
??????????????????
空字符串
我們可以看到每行都有一個大寫字母"I",這個I其實就是我們在FOR帶入的變量,我們FOR語句代入的變量名是什么,這里就寫什么.
比如
:FOR /F? %%z IN ('set') DO @echo %%z
這里我們代入的變量名是z那么我們就要把那個I改成z,例如%~fI改為
%~fz
至于前面的%~p這樣的內(nèi)容就是語法了
!
好開始講解
:
~I????????? -
刪除任何引號("),擴展
%I
這個變量的作用就如他的說明,刪除引號
!
我們來看這個例子
:
首先我們在桌面建立一個名字為temp.txt文本文件,在里面輸入這些內(nèi)容

"1111
2222"
"3333"
44"44
然后在建立個BAT文件代碼如下:
FOR /F "delims=" %%i IN (temp.txt) DO @echo? %%~i
pause
執(zhí)行后,我們看CMD的回顯如下
:
1111
2222"
3333
44"44
和之前temp.txt中的內(nèi)容對比一下,我們會發(fā)現(xiàn)第一行和第三行的引號都消失了,這就是刪除引號~i的作用了
!
刪除引號規(guī)則如下(BAT兄補充
!)
1
、若字符串首尾同時存在引號,則刪除首尾的引號;

2
、若字符串尾不存在引號,則刪除字符串首的引號;
3
、如果字符串中間存在引號,或者只在尾部存在引號,則不刪除。
%~fI??????? -
%I擴展到一個完全合格的路徑名
看例子:
把代碼保存放在隨便哪個地方,我這里就放桌面吧
.
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~fi
pause
執(zhí)行后顯示內(nèi)容如下

C:\Documents and Settings\Administrator\
桌面\test.bat
C:\Documents and Settings\Administrator\
桌面
\test.vbs
當我把代碼中的%%~fi直接改成
%%i
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%i
pause
執(zhí)行后就會顯示這些內(nèi)容

test.bat
test.vbs
通過對比,我們很容易就看出沒有路徑了,這就是"%I擴展到一個完全合格的路徑名"的作用
也就是如果%i變量的內(nèi)容是一個文件名的話,他就會把這個文件所在的絕對路徑打印出來,而不只單
單打印一個文件名,自己動手動實驗下就知道了!
%~dI??????? -
僅將%I擴展到一個驅(qū)動器號

看例子:
代碼如下,我還是放到桌面執(zhí)行
!
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~di
pause
執(zhí)行后我CMD里顯示如下

C:
C:
我桌面就兩個文件test.bat,test.vbs,%%~di作用是,如果變量%%i的內(nèi)容是一個文件或者目錄名,他就會把他這文件
或者目錄所在的盤符號打印出來!
%~pI??????? -
僅將%I擴展到一個路徑

這個用法和上面一樣,他只打印路徑不打印文件名字
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~pi
pause
我就不打結(jié)果了,大家自己復制代碼看結(jié)果吧,下面幾個都是這么個用法,代碼給出來,大家自己看結(jié)果吧!
%~nI??????? -
僅將%I擴展到一個文件名

只打印文件名字
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~ni
pause
%~xI??????? -
僅將%I擴展到一個文件擴展名
只打印文件的擴展名
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~xi
pause
%~sI??????? -
擴展的路徑只含有短名
打印絕對短文件名
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~si
pause
%~aI??????? -
%I擴展到文件的文件屬性
打印文件的屬性
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~ai
pause
%~tI??????? -
%I擴展到文件的日期/時間
打印文件建立的日期
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~ti
pause
%~zI??????? -
%I擴展到文件的大小
打印文件的大小
FOR /F "delims==" %%i IN ('dir /b') DO @echo? %%~zi
pause
%~$PATH:I?? -
查找列在路徑環(huán)境變量的目錄,并將%I擴展
??????????????????
到找到的第一個完全合格的名稱。如果環(huán)境變量名
??????????????????
未被定義,或者沒有找到文件,此組合鍵會擴展到
??????????????????
空字符串
這是最后一個,和上面那些都不一樣,我單獨說說!
然后在把這些代碼保存為批處理,放在桌面
.
FOR /F "delims==" %%i IN ('net.exe') DO @echo? %%~$PATH:i
pause
他的意思就在PATH變量里指定的路徑里搜索net,exe文件,如果有net.exe則會把他所在絕對路徑打印出來,沒有就打印一個錯誤!

好了,FOR的的變量就介紹到這了!

轉(zhuǎn)載于:https://www.cnblogs.com/lzjsky/archive/2010/11/18/1880977.html

總結(jié)

以上是生活随笔為你收集整理的BAT教程 第三节(FOR命令中的变量)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。