アプリケーションのインストール時に多数の SQL スクリプトを実行するバット ファイルがあります。インストール ダイアログで、ユーザーは dbname、login、および password を設定します。これらは、このバット ファイルで使用されます。ここにあります:
SET _server="(local)"
SET _db=dbname
SET _user=sa
SET _pswr="!#$%^&*()<>"
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regsql.exe -S %_server% -d %_db% -U %_user% -P %_pswr% -A all
"%systemdrive%\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.exe" -S %_server% -d %_db% -U %_user% -P %_pswr% -i .\createDB.sql
pause
パスワードに特別な記号が含まれていない限り、すべてがうまく機能します。しかし、そうすると、「ユーザー 'sa' のログインに失敗しました。」というエラーが表示されます。したがって、パスワードに何か問題があることは明らかです。そして今、質問:batファイルでこれらの特別なシンボルをどのようにエスケープできますか?
PS:交換してみました:
< - <
> - >
& - &
しかし、それは役に立ちません。
ありがとう!