Batch file 获取文件夹中文件名子字符串的Windows批处理脚本

Batch file 获取文件夹中文件名子字符串的Windows批处理脚本,batch-file,Batch File,我想通过一个文件夹循环,只获得文件名的最后13个字符。我所做的部分工作如下: for /r . %%g in (*.pdf) do ( set var=%%~g echo %var:~-13% ) 我的问题是,它只为文件夹中的所有文件打印一个文件名。例如,我输入了以下文件名: ARC_1384343086954570285.pdf, ARC_1384343288950263728.pdf, ARC_1384343297950370887.pdf. 输出结果如下: 950

我想通过一个文件夹循环,只获得文件名的最后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

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

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

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

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