我正在使用以下脚本来执行一堆.sql语句。
@echo off
ECHO %USERNAME% started the batch process at %TIME% >output.txt
for %%s in (*.sql) do (
sqlcmd.exe -S.\ -E -i "%%s" >>output.txt
)
pause
但是,我想确保文件已排序(名称),因为我认为我不能保证列表是有序的。
我正在使用以下脚本来执行一堆.sql语句。
@echo off
ECHO %USERNAME% started the batch process at %TIME% >output.txt
for %%s in (*.sql) do (
sqlcmd.exe -S.\ -E -i "%%s" >>output.txt
)
pause
但是,我想确保文件已排序(名称),因为我认为我不能保证列表是有序的。
您可以使用它按名称顺序循环它们
for /f %%s in ('dir *.sql /b /o:n') do (
sqlcmd.exe -S.\ -E -i "%%s" >>output.txt
)
pause
不用担心,FOR 按名称对文件进行排序(处理),但如果您想要另一种方式,您也可以对输出文件进行排序:
@echo off
ECHO %USERNAME% started the batch process at %TIME% >output.txt
FOR %%s in ("*.sql") do (sqlcmd.exe -S.\ -E -i "%%s" >> "%TEMP%\output.txt")
TYPE "%TEMP%\output.txt" | SORT > ".\Final_Output.txt"
Pause&Exit