在 Windows 批處理腳本中啥辨,for
循環(huán)的 /D
參數(shù)用于遍歷指定目錄下的所有子目錄(不包括文件)是偷。具體來說,/D
參數(shù)用于匹配目錄名缩搅,而不是文件名。
注意: for /D 命令只會遍歷指定目錄下的直接子目錄触幼,而不會遞歸遍歷子目錄的子目錄
1. 語法
for /D %%variable in (directory_pattern) do command
2. 參數(shù)解釋
-
/D
: 指定只匹配目錄名硼瓣。 -
%%variable
: 循環(huán)變量,每次循環(huán)時會依次被賦值為匹配的目錄名域蜗。 -
directory_pattern
: 目錄匹配模式巨双,可以使用通配符(如*
)來匹配目錄名。
3. 示例語句
假設(shè)你想要遍歷 C:\path\to\your\directory
目錄下的所有子目錄:
for /D %%d in ("C:\path\to\your\directory\*") do echo %%d
3.1 解釋
-
/D
: 指定只匹配目錄名霉祸。 -
%%d
: 循環(huán)變量筑累,每次循環(huán)時會依次被賦值為匹配的目錄名。 -
"C:\path\to\your\directory\*"
: 目錄匹配模式丝蹭,匹配C:\path\to\your\directory
目錄下的所有子目錄慢宗。
3.2 具體執(zhí)行過程
- 第一次循環(huán):
%%d
的值為C:\path\to\your\directory\subdir1
。 - 第二次循環(huán):
%%d
的值為C:\path\to\your\directory\subdir2
奔穿。 - 第三次循環(huán):
%%d
的值為C:\path\to\your\directory\subdir3
镜沽。 - 以此類推,直到遍歷完所有匹配的子目錄贱田。
4. 示例腳本
以下是一個完整的示例腳本缅茉,用于遍歷指定目錄下的所有子目錄,并檢查每個子目錄是否包含 .git
目錄:
@echo off
setlocal enabledelayedexpansion
REM 設(shè)置要遍歷的目錄
set "target_dir=C:\path\to\your\directory"
REM 遍歷目標(biāo)目錄下的所有子目錄
for /D %%d in ("%target_dir%\*") do (
REM 檢查是否是Git倉庫
if exist "%%d\.git" (
echo Pulling latest changes in %%d
pushd "%%d"
git pull
popd
)
)
echo All repositories have been updated.
pause
4.1 解釋
-
for /D %%d in ("%target_dir%\*") do
: 遍歷target_dir
目錄下的所有子目錄男摧。 -
if exist "%%d\.git"
: 檢查當(dāng)前子目錄是否包含.git
目錄蔬墩,如果是译打,則認(rèn)為它是一個 Git 倉庫。 -
pushd "%%d"
: 切換到當(dāng)前子目錄拇颅。 -
git pull
: 執(zhí)行git pull
命令來更新代碼奏司。 -
popd
: 返回到之前的目錄。
5. 總結(jié)
for /D
參數(shù)用于遍歷指定目錄下的所有子目錄樟插。通過使用 /D
參數(shù)韵洋,你可以輕松地遍歷目錄結(jié)構(gòu),并對其中的子目錄執(zhí)行特定的操作黄锤。這在需要處理多個目錄時非常有用搪缨。