0

バッチ ファイルを使用して、フォルダー内のすべての SQL スクリプトをアルファベット順に実行することはできますか?

現在、次のコードを使用していますが、スクリプトをアルファベット順に実行するのではなく、保持されている順序で実行します

SET Database=<<DatabaseName>>
SET ScriptsPath=<<FolderPath>>
SET ServerName=<<ServerName>>


IF EXIST "%ScriptsPath%output_CCF.txt" del "%ScriptsPath%output_CCF.txt"

type NUL > "%ScriptsPath%output_CCF.txt"

FOR /R "%ScriptsPath%" %%G IN (*.sql *.up) DO (

sqlcmd -d %Database% -S %ServerName% -i "%%G" -o "%%G.txt"

echo .................................................
 >> "%ScriptsPath%output_CCF.txt"

echo Executing: "%%G" >> "%ScriptsPath%output_CCF.txt"

echo ...................................>> "%ScriptsPath%output_CCF.txt"

copy "%ScriptsPath%output_CCF.txt"+"%%G.txt" "%ScriptsPath%output_CCF.txt"
del "%%G.txt"

)
4

1 に答える 1

0

/Fコマンドのオプションを使用するとFOR、別のコマンドを使用して、反復するデータのセットを生成できます。

このFORステートメントを使用すると、探している結果が見つかると思います。

FOR /F "usebackq" %%G IN (`dir /ON /B *.sql *.up`) DO  ...

これは、dirコマンドを使用して、使用するファイルのセットを生成します。/ON引数はファイルを名前順に並べ、引数/Bはファイル名の形式のみ (見出し情報や要約なし) を提供します。

引数の詳細については、コマンド ラインからのコマンドdir /?for /?

于 2013-10-04T21:07:13.790 に答える