我想遍历一个文件夹,只获取文件名的最后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
答案 0 :(得分:4)
每次在for循环中设置变量时,都必须使用delayedexpansion来访问它。
setlocal enabledelayedexpansion
for /r . %%g in (*.pdf) do (
set var=%%~g
echo !var:~-13!
)