我已经写了一个Win7batch file中的for
循环,该文件运行指定文件夹中的每个文件:
for /f %%f in ('dir /b C:\some_folder') do ( echo %%f )
这些文件的格式为abc_123_1234567.txt
。 我怎样才能从文件名提取最后一组数字(即1234567
),并把它们放在一个variables?
您可以使用JREN.BAT很好地解决这个问题 – 一个混合的JScript /批处理实用程序,通过执行正则表达式搜索来重命名文件,并替换名称。 JREN.BAT是一个纯粹的脚本,它将从XP以后的任何Windows机器上本机运行。
我使用/T
测试选项,以便它只列出原始文件和新名称,而不实际重做。 然后,我使用FOR / F来分析结果以获取原始名称和提取的数字。 它需要一些神秘的语法将分隔符设置为一个引号。
@echo off for /f tokens^=1^,3^ delims^=^" %%A in ( 'jren ".*_\d+_(\d+)\.[^.]*$" "$1" /t /p "C:\some_folder"' ) do ( echo File=%%A Number=%%B )
for /f "tokens=3delims=_." %%f in ('dir /b C:\some_folder\*') do ( set /a filenum=%%f echo %%f ) echo filenum is %filenum%
只有一个文件与您提供的格式相匹配