首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

批次檔 FOR 指令變數擴展修飾符完整解析

     編輯:關於C語言

for 迴圈中的 %%~ni、%%~dpi 等神祕符號,官方稱為「變數擴展修飾符」,本文主張稱之為「保留變數資訊」更直觀。透過實作環境與對照表,讓你秒懂每個字母代表的路徑資訊,並掌握自由組合技巧。

建立測試環境

@echo off
md d:\temp
cd.>d:\temp\abcd.efgh
start d:\temp

在當前目錄建立 test.bat:

@echo off
for /f %%a in ('dir /s /b a*') do (
    echo %%a          :檔案完整路徑
    echo %%~da        :保留磁碟機代號
    echo %%~pa        :保留路徑(含尾隨斜線)
    echo %%~na        :保留檔名(無副檔名)
    echo %%~xa        :保留副檔名(含點號)
    echo %%~za        :保留檔案大小(位元組)
    echo %%~ta        :保留修改時間
    echo %%~dpa       :保留磁碟機+路徑
    echo %%~nxa       :保留檔名+副檔名
    echo %%~pnxa      :保留路徑+檔名+副檔名
    echo %%~dpna      :保留磁碟機+路徑+檔名
    echo %%~dpnxa     :保留磁碟機+路徑+檔名+副檔名(等同完整路徑)
)
pause > nul

修飾符字母對照表

字母含義範例輸出 (D:\temp\abcd.efgh)
d磁碟機代號D:
p路徑(含結尾 \)\temp\
n檔名(無副檔名)abcd
x副檔名(含 .).efgh
z檔案大小(位元組)0
t修改日期時間2024-01-15 14:30

自由組合規則

  • 字母可任意排列組合,順序不影響結果,如 %%~pnx = %%~xpn。
  • 常用組合:%%~dp0(批次檔所在目錄)、%%~nxa(純檔名)、%%~dpa(目錄路徑)。
  • 搭配 for /r 遞迴或 for /f 解析文字時同樣適用。

實戰技巧:取得批次檔自身目錄

@echo off
echo 批次檔完整路徑:%~f0
echo 批次檔所在目錄:%~dp0
echo 批次檔檔名:%~nx0
pause

掌握修飾符,路徑拆解組裝不再需要呼叫外部工具,批次檔處理檔案系統任務效率大增。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved