バッチファイルを使用してウェブサイトにホスト名を入力する

バッチファイルを使用してウェブサイトにホスト名を入力する

そこで、リモート ソフトウェアのインストールを自動化しようとしています。インストールする PC が約 1000 台あり、すべてを手入力しなくても済むと便利です。

現在、起動してサインインしていますが、PC のホスト名を確認してから Edge に入力する必要があります。私はスクリプト作成の初心者なので、その点に注意してください。また、これを行うより良い方法がある場合は、アドバイスをお待ちしています。

これまでのところ、これが私の考えです。ご協力いただければ幸いです。

@if (@CodeSection == @Batch) @then

@echo off

set SendKeys=CScript //nologo //E:JScript "%~F0"

start microsoft-edge: 

timeout /t 1

%SendKeys% "{enter}"

Timeout /t 1    
                        
Used to type in my info. Then will send me Duo Prompt.      

                                            
%SendKeys% "{}"
%SendKeys% "{}"             
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{TAB}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{ENTER}"

timeout /t 10

start microsoft-edge:

timeout /t 2

%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"

%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"

%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"


pause

@end

// JScript section

var WshShell = WScript.CreateObject("WScript.Shell");

WshShell.SendKeys(WScript.Arguments(0));

答え1

<!-- :
@echo off
"%windir%\system32\wScript.exe" "%~dpnx0?.wsf" "hOsTnAmE" & goto :EOF
:: --> 
<job><script language = "vbscript">
Set WshShell = CreateObject("WScript.Shell")
WshShell.run """msedge.exe"" ""google.com""", 9
WScript.Sleep 700
For i=1 To 9
    If i>8 Then
           WshShell.SendKeys "{TAB}"
        Else
           WshShell.SendKeys (WScript.Arguments(0))+"{ENTER}"
        End If
    Wscript.Sleep 700
Next
For i=1 To 19
    If i<9 Then
           WshShell.SendKeys "{TAB}"
        ElseIf i<15 then
           WshShell.SendKeys "{DOWN}"
        Else 
           WshShell.SendKeys "{TAB}"
    End If
    Wscript.Sleep 700
Next
</script></job>

あなたの質問では、これらすべての意味が明確には分かりません{TABs}{downs}{ETCs}あなたはそれを理解していないのではないかと思いますsendkeys一度に 1 文字かチェーン/文字列かに関係なく、1 つ以上のキーを送信できます。

質問を編集して、キーで何を送信するのか、ホスト名が引数または環境変数 (setまたはsetx) でどこに行くのかを明確にしてください。

観察:このコードは、ハイブリッドバットの使い方のアイデアを提供しますの代わりに

答え2

ホスト名を取得する部分は簡単です:

/f "delims=" %%a in ('hostname') の場合、HostName=%%a を設定します。

次に、ホスト名を使用して Microsoft Edge を起動します。

msedge.exe "%HostName%" を起動します

すべてのクライアント マシンが Windows 10 を実行している場合は、VBS スクリプトの代わりに curl を使用して、ローカルまたはリモート サイトに入力を送信することを検討できます...

答え3

私は過去に似たようなことをしたことがあるが、AHK代わりに。実は少し前にそれについてのビデオを作りました...ここそうです。

関連情報