因此,我尝试自动安装我们的远程软件。我们有大约 1000 台 PC 需要安装它,如果不用手动输入所有内容就好了。
目前我已经启动并登录了,但需要它查看 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 个或多个键,无论它一次是一个字符还是一个链/字符串......
请编辑您的问题,并明确您想要通过密钥发送什么以及您的主机名去往何处(通过参数还是通过环境变量(set
或setx
))。
答案2
获取主机名的部分很简单:
对于/f“delims =”%% a在('hostname')中设置HostName = %% a
接下来,您将使用主机名启动 Microsoft Edge:
启动 msedge.exe "%HostName%"
如果所有客户端计算机都运行 Windows 10,也许您可以考虑使用 curl 而不是 VBS 脚本将输入发送到本地或远程站点......