使用查询参数打开本地文件(使用 Chrome 和 Powershell)
Open local file with query params (Using Chrome and Powershell)
我需要使用 Chrome 和 Powershell 启动本地应用程序(它需要查询字符串中的一些参数)。
这就是我正在尝试的方法,但它不起作用。
$MediaName = "Test_Media"
$CurrentLocation = Get-Location
$PreviewTemplateLocation = "$($CurrentLocation.Drive.Name):\Work\_all\Tools\Script\MCD\Script\template"
$TemplateIndexLocation = Join-Path -Path $PreviewTemplateLocation -ChildPath "index.html"
[System.Diagnostics.Process]::Start("chrome.exe", "$($TemplateIndexLocation)`#media=$($MediaName) --incognito --disable-web-security --auto-open-devtools-for-tabs --user-data-dir=C:/chromeTemp")
url应该是
C:\Work_all\Tools\Script\MCD\Script\template\index.html#media=Test_Media
但我得到的是
C:\Work_all\Tools\Script\MCD\Script\template\index.html%23media=Test_Media
请注意,我在 URL 中得到的是 %23 而不是 #。 # 字符不应该被转义或类似的东西吗?
谢谢!!
如果您使用常规文件系统路径,Chrome 会自动为您转义 URL 元字符,例如 #
(%23
是 [= 的转义形式11=]).
使用 file://
协议避免这种转义(file:///
指定 local 路径)。
此外,您可以使用 Start-Process
而不是 [System.Diagnostics.Process]::Start()
,以获得更符合 PowerShell 习惯的体验。
Start-Process chrome "file:///$TemplateIndexLocation#media=$MediaName --incognito --disable-web-security --auto-open-devtools-for-tabs --user-data-dir=C:/chromeTemp"
我需要使用 Chrome 和 Powershell 启动本地应用程序(它需要查询字符串中的一些参数)。
这就是我正在尝试的方法,但它不起作用。
$MediaName = "Test_Media"
$CurrentLocation = Get-Location
$PreviewTemplateLocation = "$($CurrentLocation.Drive.Name):\Work\_all\Tools\Script\MCD\Script\template"
$TemplateIndexLocation = Join-Path -Path $PreviewTemplateLocation -ChildPath "index.html"
[System.Diagnostics.Process]::Start("chrome.exe", "$($TemplateIndexLocation)`#media=$($MediaName) --incognito --disable-web-security --auto-open-devtools-for-tabs --user-data-dir=C:/chromeTemp")
url应该是
C:\Work_all\Tools\Script\MCD\Script\template\index.html#media=Test_Media
但我得到的是
C:\Work_all\Tools\Script\MCD\Script\template\index.html%23media=Test_Media
请注意,我在 URL 中得到的是 %23 而不是 #。 # 字符不应该被转义或类似的东西吗?
谢谢!!
如果您使用常规文件系统路径,Chrome 会自动为您转义 URL 元字符,例如 #
(%23
是 [= 的转义形式11=]).
使用 file://
协议避免这种转义(file:///
指定 local 路径)。
此外,您可以使用 Start-Process
而不是 [System.Diagnostics.Process]::Start()
,以获得更符合 PowerShell 习惯的体验。
Start-Process chrome "file:///$TemplateIndexLocation#media=$MediaName --incognito --disable-web-security --auto-open-devtools-for-tabs --user-data-dir=C:/chromeTemp"