1

最近、バッチ ファイルから次のコマンドを実行できないことがわかりました。

for %%G in (%path%) do sqlcmd /S <my-server> /d <my-database> /E /i "%%G" -b

コマンド「sqlcmd」が見つからなかったことがわかります。ただし、このコマンドをコマンド プロンプトで直接実行すると (各ペアの 1% を削除して)、機能します。

それはなぜですか、どうすればバッチファイルで動作させることができますか?

アップデート:

これは、バッチ ファイルで取得した次のコードです。

@echo off
set mypath=%~dp0
set mypath=%mypath%sql

for %%G in ("%mypath%") do echo %%G & sqlcmd /S sample-server /d sample-database /E /i "%%G" -b

pause
4

2 に答える 2

2

問題は次のとおりです。

set path=%~dp0
set path="%path%sql\"

PATH は、Windows が実行可能ファイルを検索するために使用する一連のディレクトリであるため、変更するsqlcmdと見つからなくなります。

別の変数名を使用してください。Mypath良いようです...

于 2013-04-17T14:43:06.580 に答える
0

これを試して:

for %%i in ("sqlcmd.exe") do "%%~$path:i" /S "my-server" /d "my-database" /E /i "%%~dp$path:i" -b

パス設定を確認するには、次のコードを使用できます。

@echo off&setlocal
set "temppath=%path:;=";"%"
for %%i in ("%temppath%") do echo %%~i
于 2013-04-17T13:49:51.650 に答える