Как отсортировать ввод командного файла

Я использую следующий скрипт, чтобы выполнить кучу .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

Тем не менее, я хочу убедиться, что файлы отсортированы (имя), потому что я не думаю, что могу гарантировать, что список в порядке.

2 ответа

Решение

Не беспокойтесь, 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

Вы можете использовать это, чтобы зациклить их в порядке имени

for /f %%s in ('dir *.sql /b /o:n') do (
sqlcmd.exe  -S.\ -E -i "%%s" >>output.txt
    )
pause
Другие вопросы по тегам