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

时间:2013-10-14 16:20:38

标签: batch-file for-loop sqlcmd


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

我使用这个批处理命令:

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

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

注意:我使用的是Windows 7。

1 个答案:

答案 0 :(得分: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
)