1

ディレクトリの内容をループし、ファイルごとに mysql コマンドを実行するバッチ ファイルを作成しました。

コードは次のとおりです。

SET FilePath=D:\COUNTR~1\blah\*.sql

FOR %%a IN (%FilePath%) DO mysql -u root -plinuxsux blah < "%%a"

Windows のコマンド ラインでは、次のように返されます。

mysql -u root -plinuxsux blah 0<"absolute\path\to\my\sql\file.sql"

「<」記号の前の愚かな反復「0」をどうやって取り除くのですか? 私はそれをグーグルで検索しましたが、何も見つかりません。ありがとう。

ところで、mysql コマンドは引き続き正常に実行され、データベースに表示されます。

4

1 に答える 1

2

0追加されるのは、ファイルがフィードされる対象のマーカーですstdin@ECHO OFFコマンドラインの自動エコーを取り除くために、バッチスクリプトの先頭に追加することをお勧めします。

どのファイルが処理されているかを引き続き確認したい場合は、FOR次のような方法でループを拡張できます。

FOR %%a IN (%FilePath%) DO (
    ECHO Processing %%a...
    mysql -u root -plinuxsux blah < "%%a"
)

リダイレクトと一般的なハンドル (つまり、 ) の詳細については、この記事を参照してください。stdinstdout

于 2012-12-11T20:37:38.730 に答える