如何使用 Powershell 在双引号中使用撇号
How to get around using apostrophe in double quotes with Powershell
我正在使用 Powershell。我的问题是我的文件路径(在本地计算机上不存在)中有一个撇号。 Powershell 将其视为单引号,因此出现以下错误:字符串缺少终止符:'. 我认为我可以使用反引号转义单引号,但这给了我同样的错误。
我在执行第一行代码时没有出现错误,我什至不需要那部分的反引号。我什至可以看到变量的内容与我正在使用的文件路径匹配。只有当我执行调用表达式部分时,它才会给我错误。
我正在使用https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7,所以我认为代码的第二行不是问题。
我的代码如下:
$code = "\example\example\John_Doe`'s_Folder\example.ps1"
invoke-expression -command $code
我也试过用双引号和单引号将整个文件路径括起来,但我的程序也不喜欢那样。我无法删除撇号,因为我们有超过一百个系统指向 John_Doe's_Folder.
Invoke-Expression
should generally be avoided; definitely .
在你的情况下,只需使用 &
,call operator to invoke your script via the path stored in variable $code
(see 作为背景信息),在这种情况下,嵌入的 '
根本不需要转义:
$code = "\example\example\John_Doe's_Folder\example.ps1"
& $code
至于你试过的:
"\example\example\John_Doe`'s_Folder\example.ps1"
转成下面逐字字符串内容:
\example\example\John_Doe's_Folder\example.ps1
也就是说,`
通过 PowerShell 对 "..."
字符串本身的解析被 删除,其中 `
作为转义字符;由于转义序列 `'
没有特殊含义,因此 `
只是 删除 .
对于 `
到 "survive",您需要 转义 `
字符。本身 ,你可以用 ``
:
"\example\example\John_Doe``'s_Folder\example.ps1"
我正在使用 Powershell。我的问题是我的文件路径(在本地计算机上不存在)中有一个撇号。 Powershell 将其视为单引号,因此出现以下错误:字符串缺少终止符:'. 我认为我可以使用反引号转义单引号,但这给了我同样的错误。
我在执行第一行代码时没有出现错误,我什至不需要那部分的反引号。我什至可以看到变量的内容与我正在使用的文件路径匹配。只有当我执行调用表达式部分时,它才会给我错误。
我正在使用https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-expression?view=powershell-7,所以我认为代码的第二行不是问题。
我的代码如下:
$code = "\example\example\John_Doe`'s_Folder\example.ps1"
invoke-expression -command $code
我也试过用双引号和单引号将整个文件路径括起来,但我的程序也不喜欢那样。我无法删除撇号,因为我们有超过一百个系统指向 John_Doe's_Folder.
Invoke-Expression
should generally be avoided; definitely
在你的情况下,只需使用 &
,call operator to invoke your script via the path stored in variable $code
(see '
根本不需要转义:
$code = "\example\example\John_Doe's_Folder\example.ps1"
& $code
至于你试过的:
"\example\example\John_Doe`'s_Folder\example.ps1"
转成下面逐字字符串内容:
\example\example\John_Doe's_Folder\example.ps1
也就是说,`
通过 PowerShell 对 "..."
字符串本身的解析被 删除,其中 `
作为转义字符;由于转义序列 `'
没有特殊含义,因此 `
只是 删除 .
对于 `
到 "survive",您需要 转义 `
字符。本身 ,你可以用 ``
:
"\example\example\John_Doe``'s_Folder\example.ps1"