按字母顺序使用for命令处理文件

ilM*_*ion 2 for-loop batch-file sqlcmd


我必须运行n查询SQL以更新更多数据库.我创建了一个批处理文件来帮助我完成此活动,但查询不是按名称排序执行的.

我使用这个批处理命令:

for %%I in (.\*.sql) DO sqlcmd -S .\istance -U username -P password -d dbname -i %%I -o .\%%I.log
Run Code Online (Sandbox Code Playgroud)

如何运行按名称排序的所有查询?
感谢您的回答.

注意:我使用的是Windows 7.

MC *_* ND 5

FOR命令不按名称顺序枚举文件的唯一原因是文件系统不是NTFS.FAT文件系统按放置顺序枚举文件.

因此,请使用显式名称顺序枚举

for /F "tokens=*" %%i in ('dir /b /on *.sql') do (
    sqlcmd -S .\istance -U username -P password -d dbname -i %%i -o .\%%i.log
)
Run Code Online (Sandbox Code Playgroud)