所以我正在嘗試自動安裝我們的遠端軟體。我們有大約 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
VB可以發送 1 個或多個密鑰,無論它是一次一個字元還是一個鏈/字串...
請編輯您的問題並明確您想要透過金鑰傳送的內容以及主機名稱的位置(如果透過參數或透過環境變數(set
或setx
))。
答案2
取得主機名稱的部分很簡單:
for /f "delims=" %%a in ('hostname') 執行設定 HostName=%%a
接下來,您將使用主機名稱啟動 Microsoft Edge:
啟動 msedge.exe“%HostName%”
如果所有用戶端電腦都執行 Windows 10,也許您可以考慮使用curl 而不是 VBS 腳本將輸入傳送至本機或遠端網站...