通过执行键盘命令登录网站的批处理脚本

A batch script to Login to a website by executing keyboard commands

我写了下面的脚本来登录 netflix。它不起作用(请参阅下面的输出)。我错过了什么?任何建议将不胜感激。请解释您分享的任何解决方案。

@if (@CodeSection == @Batch) @then
 /*
REM @echo OFF

set username=MyUserName
set password=MyPassword

if exist "%localappdata%\google\chrome\application\chrome.exe" (
 set browser_exe="%localappdata%\google\chrome\application\chrome.exe"
)  

if exist "%PROGRAMFILES(x86)%\google\chrome\application\chrome.exe" (
 set browser_exe="%PROGRAMFILES(x86)%\google\chrome\application\chrome.exe"
 )

if exist "%PROGRAMFILES%\google\chrome\application\chrome.exe" (
 set browser_exe="%PROGRAMFILES%\google\chrome\application\chrome.exe"
 )
 
    cscript //E:JScript //nologo "%~f0" %*

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

    rem : start the browser and navigate to neflix
    %browser_exe% --start-fullscreen --app=https://www.netflix.com/login
    timeout /t 10

    %SendKeys% "{TAB}"
    %SendKeys% "{TAB}"
    %SendKeys% "username"
    %SendKeys% "{TAB}"
    %SendKeys% "password"
    %SendKeys% "{ENTER}"

    exit /b 
@end
*/

// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));

我得到这个输出:

C:\WINDOWS\system32>"C:\Program Files (x86)\google\chrome\application\chrome.exe" --start-fullscreen --app=https://www.netflix.com/login

C:\WINDOWS\system32>超时/t 10

C:\WINDOWS\system32>CScript //nologo //E:JScript "C:\Test_Script.bat" "{TAB}" C:\Test_Script.bat(59, 3) Microsoft JScript 编译错误:应为 '/'

C:\WINDOWS\system32>CScript //nologo //E:JScript "C:\Test_Script.bat" "{TAB}" C:\Test_Script.bat(59, 3) Microsoft JScript 编译错误:应为 '/'

C:\WINDOWS\system32>CScript //nologo //E:JScript "C:\Test_Script.bat" "用户名" C:\Test_Script.bat(59, 3) Microsoft JScript 编译错误:应为 '/'

C:\WINDOWS\system32>CScript //nologo //E:JScript "C:\Test_Script.bat" "{TAB}" C:\Test_Script.bat(59, 3) Microsoft JScript 编译错误:应为 '/'

C:\WINDOWS\system32>CScript //nologo //E:JScript "C:\Test_Script.bat" "密码" C:\Test_Script.bat(59, 3) Microsoft JScript 编译错误:应为 '/'

C:\WINDOWS\system32>CScript //nologo //E:JScript "C:\Test_Script.bat" "{ENTER}" C:\Test_Script.bat(59, 3) Microsoft JScript 编译错误:应为 '/'

这个完全未经测试的 对您有帮助吗?

它使用 VBScript 而不是 JScript;只需根据需要分别替换第 3 行和第 4 行的登录名和密码。测试时不要更改任何其他内容。

<!-- :
@Echo Off
Set "usr_name=john-doe@domain.ext"
Set "usr_pass=P455w0rd"
Set "usr_chrome="
For %%G In (
    "%ProgramFiles(x86)%"
    "%ProgramFiles%"
    "%LocalAppData%"
) Do If Exist "%%~G\Google\Chrome\Application\chrome.exe" Set "usr_chrome=%%~G\Google\Chrome\Application\chrome.exe"
If Defined usr_chrome %SystemRoot%\System32\cscript.exe //NoLogo "%~f0?.wsf" "%usr_chrome%" "%usr_name%" "%usr_pass%"
Exit /B
-->
<Job>
  <Script Language="VBScript">
    Dim ObjShell, MyChrome
    Set ObjShell = WScript.CreateObject("WScript.Shell")
    MyChrome = Chr(34) & WScript.Arguments(0) & Chr(34)
    ObjShell.Run MyChrome & "--start-fullscreen --app=""https://www.netflix.com/login""", 9
    WScript.Sleep 5000
    ObjShell.SendKeys "{TAB}"
    ObjShell.SendKeys "{TAB}"
    ObjShell.SendKeys(WScript.Arguments(1))
    ObjShell.SendKeys "{TAB}"
    ObjShell.SendKeys(WScript.Arguments(2))
    ObjShell.SendKeys "{ENTER}"
  </Script>
</Job>

绝对没有必要运行这个脚本'As administrator',即提升,所以请不要尝试这样做。

我使用了 5 秒的等待时间,(5000),让您的浏览器在发送击键之前完全打开您需要的页面。如果登录没有按预期工作,您可能需要增加该时间。