如何关闭在 PowerShell 中使用 cat 创建的文件
How to close file created with cat in PowerShell
我正在使用 Windows PowerShell 并使用
创建了一个文件
cat > test
输入后,我可以输入文件的内容。
但是,如何关闭 file/terminate 文件 test
的内容写入?在基于 Unix 的系统上,这将是 ctrl + D
,但这似乎不适用于 Windows...
上的 PowerShell
充实 Mathias R. Jessen's 对问题发表评论:
在 Windows PowerShell 中,cat
是 loosely 等效 Get-Content
的别名命令;但是,Get-Content
仅对 个文件进行操作。
您可以使用 here-string 以交互方式键入要保存到文件中的内容(像往常一样,在每行后按 Enter):
Set-Content test @'
type
your
lines
here
'@ # Type this to finish and save - must be at the *very start* of the line.
如果要在您键入的行中引用变量和表达式,请使用可扩展(插值) here-string 变体,它使用 "
而不是 '
.
注:
以交互方式,您会看到第二行和所有后续行都以 >>
为前缀,这是 PowerShell 表示正在键入的命令尚未完成的方式。
Set-Content
is used to save to a file (and is generally preferable for saving text to files); the caveat in Windows PowerShell is that it uses the system's active ANSI code page to create the file (whereas PowerShell (Core) 7+ 现在值得称赞 一致 默认为(无 BOM)UTF-8);根据需要使用 -Encoding
参数。
PowerShell 也支持 >
(和 >>
),它委托给 Out-File
cmdlet,因此在 Windows PowerShell 中创建“Unicode " (UTF-16LE) 文件。
虽然在语法上通常很方便,但如果您要在手头的情况下使用 >
,您将不得不 - 笨拙地 - 键入 > test
在 此处字符串的结束 '@
定界符之后,因为 - 与 POSIX 兼容的 shell 不同,例如 bash
- >
不能 开始一个命令。
您也可以使用Get-Clipboard
- 将要保存的文本复制到文件中。
Get-Clipboard > test
我正在使用 Windows PowerShell 并使用
创建了一个文件cat > test
输入后,我可以输入文件的内容。
但是,如何关闭 file/terminate 文件 test
的内容写入?在基于 Unix 的系统上,这将是 ctrl + D
,但这似乎不适用于 Windows...
充实 Mathias R. Jessen's 对问题发表评论:
在 Windows PowerShell 中,cat
是 loosely 等效 Get-Content
的别名命令;但是,Get-Content
仅对 个文件进行操作。
您可以使用 here-string 以交互方式键入要保存到文件中的内容(像往常一样,在每行后按 Enter):
Set-Content test @'
type
your
lines
here
'@ # Type this to finish and save - must be at the *very start* of the line.
如果要在您键入的行中引用变量和表达式,请使用可扩展(插值) here-string 变体,它使用 "
而不是 '
.
注:
以交互方式,您会看到第二行和所有后续行都以
>>
为前缀,这是 PowerShell 表示正在键入的命令尚未完成的方式。Set-Content
is used to save to a file (and is generally preferable for saving text to files); the caveat in Windows PowerShell is that it uses the system's active ANSI code page to create the file (whereas PowerShell (Core) 7+ 现在值得称赞 一致 默认为(无 BOM)UTF-8);根据需要使用-Encoding
参数。PowerShell 也支持
>
(和>>
),它委托给Out-File
cmdlet,因此在 Windows PowerShell 中创建“Unicode " (UTF-16LE) 文件。虽然在语法上通常很方便,但如果您要在手头的情况下使用
>
,您将不得不 - 笨拙地 - 键入> test
在 此处字符串的结束'@
定界符之后,因为 - 与 POSIX 兼容的 shell 不同,例如bash
->
不能 开始一个命令。
您也可以使用Get-Clipboard
- 将要保存的文本复制到文件中。
Get-Clipboard > test