0

こんにちはすべて私はフォルダに存在するSQLファイルのセットを読み取ってからSQLCMDユーティリティを使用してそれらを実行する必要があるバッチスクリプトを書いています。

実行しようとすると、出力ファイルが作成されません。どこが間違っているのか、スクリプトをデバッグする方法がわかりません。誰かがスクリプトを手伝ってくれますか?

@echo off

FOR %F IN (C:\SQLCMD*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %F -o C:\SEL.txt -p -b

IF NOT [%ERRORLEVEL%] ==[0] goto get_Error

:Success echo Finished Succesffuly exit /B 0 goto end

:get_error echo step Failed exit /B 40

:end
4

3 に答える 3

1

バッチファイルを右クリックして、管理者として実行してみてください。

于 2010-08-24T01:22:57.453 に答える
1

これが実際にバッチファイルにある場合(コマンドラインで手動で実行されていない場合)、cmd.exeがバッチファイルから読み取った行を実行する方法のために、%F変数の文字を2倍にする必要があります。%

FOR %%F IN (C:\SQLCMD*.SQL) DO sqlcmd -S LENOVO-C00 -U yam -P yam!@ -i %%F -o C:\SEL.txt -p -b

私はあなたが得るだろうと思っていたでしょうが

F was unexpected at this time.

%変数名の前に文字が1つしかない場合は、エラーが発生します。

于 2010-08-24T01:24:12.220 に答える
0

答えは次のようになります。

FOR %%F "usebackq" IN (`dir.exe C:\SQLCMD*.SQL`) DO ... 
于 2012-02-08T17:20:35.297 に答える