无法在For循环中找出中间字符串语法

时间:2014-04-19 16:41:06

标签: batch-file

我决定今天第一次写一个批处理脚本,男人,这个语言是 alien

我有这样的文件:

Statement_Jan 2013.pdf
Statement_Feb 2013.pdf
Statement_Mar 2013.pdf
Statement_Apr 2013.pdf

我试图获得月份部分:

for %%f in (Statement_*.pdf) do (
    echo.%%f:~10,3%
)

然而上述输出:

Statement_Jan 2013.pdf:~10,3
Statement_Feb 2013.pdf:~10,3
Statement_Mar 2013.pdf:~10,3
Statement_Apr 2013.pdf:~10,3

我对中间字符串语法做错了什么?

2 个答案:

答案 0 :(得分:4)

for /F "tokens=2 delims=_ " %%a in ('dir /B Statement_*.pdf') do (
   echo %%a
)

答案 1 :(得分:3)

终于明白了。

setlocal EnableDelayedExpansion
for %%f in (Statement_*.pdf) do (
    set filename=%%f
    echo !filename:~10,3!
)

永远不会再批处理脚本。再也不会了。