我的目录中有许多SQL脚本,并以数字开头,例如
目前,我可以使用以下脚本遍历它们:
@ECHO OFF
FOR /r . %%F IN (*.sql) DO (
ECHO File:"%%F"
)
但是,由于Windows读取目录中文件的方式,因此先读取10和11,再读取2,依此类推:
如何按前缀顺序遍历目录中的每个文件?
下面的批处理文件在需要它的文件名中插入前导零。
@echo off
setlocal EnableDelayedExpansion
for /F "delims=" %%f in ('dir /B *.sql') do (
set "filename=%%f"
if "!filename:~1,1!" equ "-" ren "%%f" "0%%f"
)
编辑:添加了新的解决方案
下面的批处理文件以正确的顺序显示文件,而不重命名它们。
@echo off
setlocal EnableDelayedExpansion
rem Create an array with filenames in right order
for %%f in (*.sql) do (
for /F "delims=-" %%n in ("%%f") do (
set "number=00000%%n"
set "file[!number:~-6!]=%%f"
)
)
rem Process the filenames in right order
for /F "tokens=2 delims==" %%f in ('set file[') do (
echo %%f
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句