いくつかの著作権情報を表示し、サーバーに接続してから、ユーザー名とパスワードの入力を求める Windows exe があります。
したがって、これを実行するたびに、プロンプトがユーザー名とパスワードを入力するのを待つ必要があります。通常、コマンドが著作権情報を表示し始めた後、ユーザー名、パスワードを先に入力しますが、それは大雑把な方法です。
Windowsコマンドの入力プロンプトにパラメータをバッチファイルで渡すより良い方法はありますか?
PS Linuxでは、このように << 演算子を使用してこれを行います
linux_command <<delimiter
inputparamvalue1
inputparamvalue2
delimiter
linux_command が実行され、最初の入力プロンプトで inputparamvalue1 が読み取られ、次の入力プロンプトで inputparamvalue2 が読み取られます。
James への返信として、セキュリティに関するアドバイスをありがとう。私はそれを大事にします。
あなたのソリューションを実装しようとしましたが、うまくいきませんでした。
これらは私のファイルです。何かヒントがあれば見てください。
vpn.bat
@ echo off
"C:\Program Files (x86)\Cisco\Cisco AnyConnect VPN Client\vpncli.exe" connect "mycompanyvpnsite.com"
login.txt
myusername
mypassword
startvpn.bat
@ECHO OFF
CALL vpn.bat < login.txt
ECHO I'm back!
結果
D:\>startvpn.bat
Cisco AnyConnect VPN Client (version 2.5.6005) .
Copyright (c) 2004 - 2010 Cisco Systems, Inc.
All Rights Reserved.
>> state: Disconnected
>> notice: Ready to connect.
>> registered with local VPN subsystem.
>> state: Disconnected
>> notice: Ready to connect.
VPN> >> contacting host (mycompanyvpnsite.com) for login information...
>> notice: Contacting mycompanyvpnsite.com.
VPN>
>> Please enter your username and password.
Username: [myusername] Password:
表示されているユーザー名 myusername は、以前の手動ログインからキャッシュされています。したがって、この実行では login.txt から値が取得されていないようです。
パラメータなしで vpn.bat を単独で実行した場合、次のようなプロンプトが表示されます
VPN>
>> Please enter your username and password.
Username: [myusername] <i press enter to take the cached value>
Password: ******** <i enter password and press enter>
そして繋がります。
VPN クライアントには、コマンド ラインでパスワードを指定する権限がないため、この方法を試しています。