powershell 中相当于Linux的命令是什么:
tee file.txt <<EOF
终端<input>
将会是这样的:
blah blah <\n>
beh ble <\n>
EOF
假设我复制了上面的 3 行,然后输入一些(尚不清楚的)powershell 命令。然后粘贴到终端中。(大概是在粘贴操作后,在输入结束时点击Ctrl- D。)然后希望在文件中找到所有这些,文件.txt。
我想我们必须:
- 获取终端输入 $file 和未知命令,A。
- 等待来自 shell 的管道输入。
- 等待Ctrl-D并中断(EOF)shell 输入。
- 使用未知命令将输入缓冲区传输到 $file,乙。
编辑:2020-01-17
我意识到我错过了上面列表中我自己的观点(第 3 点)。重点是不必输入Ctrl-D而是让 shell 查找“EOF”序列,就像上面的 Linux bash 命令一样。这在 bash 脚本中一直都在执行,用于创建配置文件甚至其他 bash 脚本。这个功能在 PWSH 中也非常有用。
我能达到上述效果的方法是使用Tee 对象和“这里”操作符(@'...
),如下所示:
$ @"
>> Even if you have not created a profile,
>> the path of the profile file is:
>> $profile.
>> "@ | Tee-Object -FilePath "test.txt" -Append
Even if you have not created a profile,
the path of the profile file is:
C:\Users\XXXX\Documents\PowerShell\Microsoft.PowerShell_profile.ps1.
但我想要球座左边和这是在右侧,作为命令的最后一部分。这实际上完成了等效命令。这里是字符串在 Linux 中很好地解释了这一点回答。
答案1
字符串可以包含换行符,为什么不使用它呢?
PS D:\> echo "blah blah
>> beh ble" | tee file.txt
blah blah
beh ble
PS D:\> cat .\file.txt
blah blah
beh ble
因此,如果命令是从另一个应用程序复制的,则"
先键入,粘贴字符串,然后用另一个关闭它"
。但为什么不直接打开文本编辑器进行粘贴呢?
如果字符串中可以有引号,则使用此处字符串
PS D:\> echo @"
>> here string
>> with embedded quote '"'
>> "@
here string
with embedded quote '"'