1

cygwin で「net use」コマンドを自動化する必要があります。

コマンドは「net use /user:"name" \somewhere」です。そして「'name' が 'prosseek' に接続するためのパスワードを入力してください:」でパスワードの入力が期待されます。

コマンドライン入力でも、バッチファイル内で実行してもうまく機能します。次のように期待スクリプトを作成すると機能しません。

spawn net use /user:"name" \\prosseek\somewhere
「'prosseek' に接続するには、'name' のパスワードを入力してください:」
「パスワード\n」を送信
相互作用する

次のようなエラーメッセージが表示されます。

spawn net use /user:"name" \prosseek\somewhere
システムエラー 67 が発生しました。

ネットワーク名が見つかりません。

送信: 無効なスポーン ID (4) 実行中 ""パスワードを送信\n"" (ファイル "conpros" 行 9)

  • Q : 何が問題なのですか?
  • Q : 「net use」などの一部の MS コマンドは cygwin/expect で動作しますか?
4

2 に答える 2

3

おそらく、Cygwin以外のプログラムでCygwinの期待値を使用することはできません。Cygwinはposixptyをエミュレートしますが、WindowsプログラムはWindows独自の端末処理コードを使用します。このコードは、読み取りと書き込みを試みるパイプラインについては何も知りません。

また、期待どおりにバックスラッシュを回避できませんでした。エラーメッセージには、渡した文字列とは異なる文字列が表示されることに注意してください。

于 2010-02-10T17:06:03.987 に答える
2

ここにいくつかの提案があるかもしれません:

どこかで\prosseek\を探索できますか?もしそうなら、私はあなたがどこかでバックスラッシュ\\proseek\をエスケープする必要があるかもしれないと想像します。

ネットワーク名の一部は、ホスト名を解決できないことを示している場合もあります。

于 2010-02-10T17:04:27.150 に答える