批处理,向后读取文件名

时间:2018-09-18 07:57:18

标签: windows batch-file

我正在研究一个小的脚本,该脚本将文件移动到按最后2个字符排序的另一张地图上,现在的问题是,文件总是看起来像这样:

1238184AD
1237135881AD
123477TG

这里的问题是,如果文件具有固定的长度,但文件不是固定的,我可以将它们移动到正确的地图。播种现在,我的问题是,我可以倒数文件名,以便脚本创建最后2个字符的目录。

这是我当前的脚本的样子:

@ECHO OFF
setlocal enabledelayedexpansion

set index=~8,2
set moveFrom=C:\Users\**\Desktop\Map\
set moveTo=C:\Users\**\Desktop\Map2\

for /R "%moveFrom%" %%f in (*.txt) do (
    echo %%f
    set "fileName=%%~nf"
    cd %moveTo%
    IF EXIST "!fileName:%index%!" (
        move /-y "%%f" "%moveTo%"!fileName:%index%!"\"
        echo "%%f" moved
    ) ELSE (
        mkdir "!fileName:%index%!"
        move /-y "%%f" "%moveTo%"!fileName:%index%!"\"
        echo "%%f" moved
    )
)

pause

0 个答案:

没有答案