demo.bat
私の問題を説明するための最小限のバッチファイルは次のとおりです。
@ECHO off
set /p foo=Enter foo:
echo.
echo you typed "%foo%"
sqlcmd -?
set /p bar=Enter bar:
echo.
echo you typed "%bar%"
foo.txt
次のような入力ファイルがあります。
foo_value bar_value
バッチファイルを として実行しますdemo.bat < foo.txt
。出力は次のとおりです。
次のように入力します。 「foo_value」と入力しました Microsoft (R) SQL Server コマンド ライン ツール バージョン 9.00.3042.00 NT インテル X86 Copyright (c) Microsoft Corporation. 全著作権所有。 使用法: Sqlcmd [-U ログイン ID] [-P パスワード] (...等...) バーを入力してください: 「foo_value」と入力しました
を削除するsqlcmd -?
と、 bar は として「入力」bar_value
されます。これは、当初期待していたものです。
sqlcmd
そのため、意図されていない標準入力でどういうわけかうまく機能していないように見えます。どうすれば回避できるかについて、何か明るいアイデアを持っている人はいますか? 完璧な世界では、ソリューションに元のバッチ ファイルの変更や、相互作用を促進するためのサードパーティ パッケージのインストール (Expect など) は含まれません。