使用PowerShell,读取多个已知文件名,附加所有文件的文本,创建和写入一个输出文件

Rya*_*yer 3 powershell

我有五个.sql文件,知道每个文件的名称.对于此示例,将它们称为one.sql,two.sql,three.sql,four.sql和five.sql.我想附加所有文件的文本并创建一个名为master.sql的文件.我如何在PowerShell中执行此操作?随意发布此问题的多个答案,因为我确信有几种方法可以做到这一点.

我的尝试不起作用,并创建一个包含数十万行的文件.

PS C:\sql> get-content '.\one.sql' | get-content '.\two.sql' | get-content '.\three.sql' | get-content '.\four.sql' | get-content '.\five.sql' | out-file -encoding UNICODE master.sql
Run Code Online (Sandbox Code Playgroud)

Kei*_*ill 10

Get-Content one.sql,two.sql,three.sql,four.sql,five.sql > master.sql
Run Code Online (Sandbox Code Playgroud)

注意>相当于Out-File -Encoding Unicode.当我需要指定不同的编码时,我只倾向于使用Out-File.

  • @Jaykul或在PowerShell V3中使用`Get-Content -Raw`。 (2认同)

小智 5

这里有一些很好的答案,但如果您有很多文件,并且也许您不知道所有名称,这就是我想出的:

$vara = get-childitem -name "path"

$varb = foreach ($a in $vara) {gc "path\$a"}
Run Code Online (Sandbox Code Playgroud)

例子

$vara = get-childitem -name "c:\users\test"

$varb = foreach ($a in $vara) {gc "c:\users\test\$a"}
Run Code Online (Sandbox Code Playgroud)

显然,您可以直接将其直接输入| add-content或其他任何内容,但我喜欢捕获变量,以便稍后进行操作。