Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 在字符串中使用变量时如何保留换行符_Powershell - Fatal编程技术网

Powershell 在字符串中使用变量时如何保留换行符

Powershell 在字符串中使用变量时如何保留换行符,powershell,Powershell,运行以下代码时: $txt = Get-Content file1.txt $a = @" -- file start -- $txt -- file end -- "@ $a 所有新行都将从文件内容中删除,但只是在运行 $txt 打印文件而不剥离新行 你知道如何使用here字符串让它按需要工作吗 谢谢 如果将数组放入字符串中,它将在项目之间展开$OFS(或者如果$OFS为$null),则展开。这两种方法都可以看到相同的效果 "$t

运行以下代码时:

  $txt = Get-Content file1.txt

    $a = @"
     -- file start --
     $txt
     -- file end --
    "@

   $a
所有新行都将从文件内容中删除,但只是在运行

$txt
打印文件而不剥离新行

你知道如何使用here字符串让它按需要工作吗


谢谢

如果将数组放入字符串中,它将在项目之间展开
$OFS
(或者如果
$OFS
$null
),则展开。这两种方法都可以看到相同的效果

"$txt"
''+$txt
还有其他一些。您可以设置
$OFS=“`r`n”
,这将更改它们连接到换行符的空间

您还可以在开始时将
Get Content
更改为

$txt = Get-Content file1.txt | Out-String
$txt = [IO.File]::ReadAllText((Join-Path $pwd file1.txt))

将$txt管道输出到子表达式内的字符串

$a = @"
    -- file start --
    $($txt | Out-String)
    -- file end --
"@

谢谢你的回答,这解释了很多事情。