Windows Batch脚本用于获取文件夹中文件名的子字符串

时间:2014-01-16 13:15:44

标签: batch-file

我想遍历一个文件夹,只获取文件名的最后13个字符。我所做的部分内容如下:

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

1 个答案:

答案 0 :(得分:4)

每次在for循环中设置变量时,都必须使用delayedexpansion来访问它。

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