编写批处理文件以在 Google Chrome 中以全屏模式打开 Netflix

编写批处理文件以在 Google Chrome 中以全屏模式打开 Netflix

我正在编写一个批处理文件,用于在 Google Chrome 中以全屏模式打开 Netflix。不过,我对批处理文件的了解还很浅薄……

chrome.exe --start-fullscreen --app=https://www.netflix.com

这当然在从与 chrome 可执行文件相同的目录运行时有效,但在其他任何地方都无效。

我正在寻找一种方法来编写批处理文件来搜索和定位 chrome.exe,然后使用上述开关执行它。这样我就可以与其他人共享批处理文件,并且无论他们的文件路径如何,它都可以正常工作。可以做到吗?

- 编辑 -

由于 Appleoddity 表明搜索是不必要的,那么这是否是为此目的编写批处理文件的最佳方法?:

@echo off    
cd\program files (x86)\google\chrome\application
chrome.exe --start-fullscreen --app=https://www.netflix.com

答案1

因为人们可能会将程序文件放在 C 盘以外的奇数驱动器上(不常见但有可能),所以最好使用程序文件文件夹的系统变量。此外,由于它可能位于本地应用程序数据文件夹中,我们也应该在那里检查。

rem :: set file location

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

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

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

 rem :: run chrome
%chrome_exe% --start-fullscreen --app=https://www.netflix.com

答案2

我写了一些有用的东西。如果没有阿德莱德爵士的帖子,我不可能做到这一点。所以,感谢阿德莱德爵士,谢谢你的榜样。也感谢所有做出贡献的人;它很有教育意义 :)

(我选择批处理而不是 powershell 是因为任何我想与之共享 powershell 脚本的人首先都必须更改他们的执行策略设置。而批处理则不需要这样做。)

if exist "%localappdata%\google\chrome\application\chrome.exe" set file_found="yes" 
if not exist "%localappdata%\google\chrome\application\chrome.exe" set file_found="no" 
if %file_found%=="yes" set chrome_exe="%localappdata%\google\chrome\application\chrome.exe"

if exist "%programfiles%\google\chrome\application\chrome.exe" set file_found="yes" 
if not exist "%programfiles%\google\chrome\application\chrome.exe" set file_found="no" 
if %file_found%=="yes" set chrome_exe="%programfiles%\google\chrome\application\chrome.exe"

if exist "%programfiles(x86)%\google\chrome\application\chrome.exe" set file_found="yes" 
if not exist "%programfiles(x86)%\google\chrome\application\chrome.exe" set file_found="no" 
if %file_found%=="yes" set chrome_exe="%programfiles(x86)%\google\chrome\application\chrome.exe" 

%chrome_exe% --start-fullscreen --app=https://www.netflix.com

答案3

我绝对建议转换为电源外壳(在我看来,这更容易)并且有大量的 cmd-let 来帮助解决这类事情。

在本例中,我们假设 Google Chrome 有 2 个安装路径,因此这是我们需要考虑的主要变量。使用测试路径选项我们可以为潜在选项指定 2 个 UNC 路径。

下面是一个使用“Test-Path”的脚本,我们可以测试 Program Files (x86) 中是否存在 Google Chrome,如果不存在,我们就分配 LocalAppData 的值。

这里是:

    $ConfirmGoogleChrome = (Test-Path "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")
    $Process = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

        function OpenChromeFullScreen {
        If ($ConfirmGoogleChrome -eq $True) {
        start $Process --start-fullscreen --app="https://www.netflix.com"
        }
        else {
        $Process = "%localappdata%\google\chrome\application\chrome.exe"
        start $Process --start-fullscreen --app="https://www.netflix.com"
        }
   }
OpenChromeFullScreen

请注意,Windows Vista(我相信)及更高版本中默认启用了 PowerShell,并且需要 Net Framework 才能运行 - 应在最多现代操作系统安装。

更新

由于有评论称这可能不像要求的那样强大(因为我们不能假设C:\是操作系统的安装路径),我做了一些“改进”:

# Variables for the HomeDrive (OS Install Path)
# Inclusive of the path to AppData

$OSInstallPath  = $env:HOMEDRIVE
$OSLocalAppData = $env:LOCALAPPDATA

# Performs Checks on the end path

$ChromeProgramFiles = (Test-Path "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe") 
$ChromeLocalAppData = (Test-Path "$OSLocalAppData\google\chrome\application\chrome.exe")

# Variable for Google Chrome Path
# We default this to Program Files
$GoogleChrome = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"


# Function to set the paths
Function ConfirmSetPaths {
    If ($ChromeProgramFiles -eq $False) {
    $GoogleChrome = "$OSLocalAppData\google\chrome\application\chrome.exe" 
  }
}

ConfirmSetPaths
Start "$GoogleChrome" --start-fullscreen --app="https://www.netflix.com"

本质上,我们为您电脑上的安装路径创建了变量(“ $OSInstappPath”和“ $OSLocalAppData”,它们是系统链接变量)(因为 UNC 路径可能会根据运行它的人员而改变)。

然后我们为可能存在的两个路径创建另外 2 个变量chrome.exe。该函数ConfirmSetPaths将测试chrome.exePC 上的“默认”路径是否存在(在本例中我们使用“ C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”)。

如果此处存在,则启动该程序。如果不存在,则将变量更改为$GoogleChrome本地应用程序数据文件夹,然后从此处执行。

变化:

  1. 现在使用$env变量来指示操作系统安装路径;

相关内容