以下代码(位于底部)在文件中生成以下输出之一
4/12/2019 = (get-date).AddDays(2).ToShortDateString();
4/13/2019 = (get-date).AddDays(2 + 1).ToShortDateString();
或者如果我还没有初始化变量
= (get-date).AddDays(2).ToShortDateString();
= (get-date).AddDays(2 + 1).ToShortDateString();
这是代码块,我希望父 ps1 文件逐字写入子 ps1 文件。
$multiLineScript2 = @"
$startDate2 = (get-date).AddDays($resultOfSubtraction).ToShortDateString();
$endDate2 = (get-date).AddDays($resultOfSubtraction + 1).ToShortDateString();
"@
$multiLineScript2 | Out-File "c:\file2.ps1";
tl;dr:
创建一个verbatim多行字符串(即,一个字符串文字内容), use a 单引号这里的字符串:
$multiLineScript2 = @'
$startDate2 = (get-date).AddDays($resultOfSubtraction).ToShortDateString();
$endDate2 = (get-date).AddDays($resultOfSubtraction + 1).ToShortDateString();
'@
注意使用@'
and '@
作为分隔符。
Use a 双引号仅当此处字符串字符串扩展需要(插值); to 选择性抑制扩张,escape $
字符。被包括verbatim as `$
,如图所示你自己的答案 https://stackoverflow.com/a/55612497/45375.
PowerShell 中的字符串文字
Get-Help about_quoting rules https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules讨论了PowerShell 支持的字符串文字类型:
两种基本类型也可用作这里的字符串- 在表格中@'<newline>...<newline>'@
and @"<newline>...<newline>"@
分别 (<newline>
代表实际的换行符(换行符)) - 其中做出定义多线弦更容易.
-
Important:
- 后面必须没有任何内容(除了空格)opening分隔符 -
@'
or @"
- 在同一行 - 字符串的内容必须定义在下列的 lines.
- The closing分隔符 -
'@
or "@
(匹配开始分隔符)- 必须是在一行的开头.
- Here-字符串定义in files总是使用其封闭文件的换行格式(CRLF 与 LF),而交互地定义的总是仅使用 LF。
例子:
# Single-quoted: literal:
PS> 'I am $HOME'
I am $HOME
# Double-quoted: expandable
PS> "I am $HOME"
I am C:\Users\jdoe
# Here-strings:
# Literal
PS> @'
I am
$HOME
'@
I am
$HOME
# Expandable
PS> @"
I am
$HOME
"@
I am
C:\Users\jdoe
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)