次のバッチファイルを実行して、デバイスへのtelnetセッションを確立し、デバイスから取得した情報を保持するファイルを作成します。
CD\
COLOR 0E
CLS
@echo off
ECHO This will start the connection to the Heraeus QuicK-Lab DATACAST ENtouch.
pause
telnet 172.17.0.16 4224 -f C:\LogFiles\Datacast.log
Telnetセッションが確立された後、コードの最後の行で指定されているように、Datacast.logにデータをダンプするコマンドを入力します。コマンド(たとえば、 "M3,1,999")を何らかの方法でバッチファイルに含めることを望んでいますが、同様の例を見つけることができません。
バッチファイルでこれを行うことは可能ですか?
たぶんこのようなものですか?
バッチを作成してtelnetに接続し、スクリプトを実行してコマンドを発行しますか? ソース
:: Open a Telnet window
start telnet.exe 192.168.1.1
:: Run the script
cscript SendKeys.vbs
set OBJECT=WScript.CreateObject("WScript.Shell")
WScript.sleep 50
OBJECT.SendKeys "mylogin{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "mypassword{ENTER}"
WScript.sleep 50
OBJECT.SendKeys " cd /var/tmp{ENTER}"
WScript.sleep 50
OBJECT.SendKeys " rm log_web_activity{ENTER}"
WScript.sleep 50
OBJECT.SendKeys " ln -s /dev/null log_web_activity{ENTER}"
WScript.sleep 50
OBJECT.SendKeys "exit{ENTER}"
WScript.sleep 50
OBJECT.SendKeys " "
マイクロソフトtelnet.exe
は、この質問に対する別の回答に示されているように、別のスクリプト(キーボードフォーカスが必要)を使用しないとスクリプト化できませんが、無料の
Telnet Scripting Tool v.1.0 by Albert Yale
googleで検索でき、スクリプト化とログ記録の両方が可能で、キーボードフォーカスを必要とせずにバッチファイルから起動できます。
キーボードフォーカスが使用されている場合のtelnet.exeと2番目のスクリプトの問題は、スクリプトの実行時に誰かがコンピューターを使用している場合、マウスクリックとキーボード使用によりスクリプトが失敗する可能性が高いことです。瞬間。
サーバーにTelnetで接続し、ファイルのアクセス許可を変更する方法を見つけました。次に、ファイルをコンピューターにFTPで戻し、開きます。これがあなたの質問に答え、FTPにも役立つことを願っています。
Filepath変数はセットアップされているため、常に同じディレクトリにログインしてcdします。ユーザーが手動で入力できるように、プロンプトに変更できます。
:: This will telnet to the server, change the permissions,
:: download the file, and then open it from your PC.
:: Add your username, password, servername, and file path to the file.
:: I have not tested the server name with an IP address.
:: Note - telnetcmd.dat and ftpcmd.dat are temp files used to hold commands
@echo off
SET username=
SET password=
SET servername=
SET filepath=
set /p id="Enter the file name: " %=%
echo user %username%> telnetcmd.dat
echo %password%>> telnetcmd.dat
echo cd %filepath%>> telnetcmd.dat
echo SITE chmod 777 %id%>> telnetcmd.dat
echo exit>> telnetcmd.dat
telnet %servername% < telnetcmd.dat
echo user %username%> ftpcmd.dat
echo %password%>> ftpcmd.dat
echo cd %filepath%>> ftpcmd.dat
echo get %id%>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat %servername%
del ftpcmd.dat
del telnetcmd.dat
まず第一に、警告。なぜtelnetを使用したいのですか? telnetは古いプロトコルであり、安全ではなく、リモートアクセスには実用的ではありません。 (ほぼ)完全にsshに置き換えられました。
質問に答えるには、状況によります。使用するtelnetクライアントによって異なります。 Microsoft telnetを使用する場合、できません。 Microsoft telnetには、バッチファイルまたはコマンドラインからコマンドを送信する手段がありません。
これは古いですが、他の誰かが私と同じようにつまずくかもしれません。 DataCastに接続すると、データベースにアクセスできるデーモンと通信します。顧客がデータベースにアクセスして結果をどこかに保存するためのコードを書くことが意図されていました。 telnetが手動でデータにアクセスするように機能することが起こります。 netcatも動作するはずです。 sshは明らかにしません。