2014-01-16 152 views
2

我想遍歷文件夾並只獲取文件名的最後13個字符。我所做的部分如下:Windows批處理腳本獲取文件夾中文件名的子字符串

for /r . %%g in (*.pdf) do (
    set var=%%~g 
    echo %var:~-13% 
) 

我的問題是,它是隻對文件夾中的所有文件打印一個文件名。例如,我有以下文件名作爲輸入:

ARC_1384343086954570285.pdf, 
ARC_1384343288950263728.pdf, 
ARC_1384343297950370887.pdf. 

輸出出來爲:

950370887.pdf 
950370887.pdf 
950370887.pdf 

回答

3

您設置的for循環中的變量任何時候,你必須使用delayedexpansion進行訪問。

setlocal enabledelayedexpansion 
for /r . %%g in (*.pdf) do (
    set var=%%~g 
    echo !var:~-13! 
) 
+0

謝謝馬特。有效。 – user3202624

相關問題