将输出附加到现有文本文件

时间:2015-01-12 11:41:59

标签: powershell append powershell-v2.0 system.io.file

我在下面有一段powershell代码,它在文件夹C:\ Users \ XX \ Desktop \ Powershell \中的每个单独的zip文件中的C:\ Users \ XX \ Desktop \ info \文件夹中创建一个单独的文本文件。 Zip,文本文件的名称是zip文件的名称。

Get-ChildItem -Path "C:\Users\XX\Desktop\Powershell\Zip" -Recurse -exclude '*.info' | ForEach { [System.IO.File]::WriteAllText("C:\Users\XX\Desktop\info\"+ $_.Name + ".txt", $_.FullName)} 

ontop,我有下面的脚本获取zip文件的最后修改日期

$path = 'C:\Users\XX\Desktop\Powershell\Zip'

$files = Get-ChildItem $path -Recurse -excluse '*.info' 

foreach($file in $files){

$file.lastwritetime

以及获取计算机名称的此命令

{
(Get-WmiObject Win32_Computersystem).name 
}

所有这些都将在一个脚本中,但我需要脚本的第2和第3部分的输出附加到脚本第一部分中创建的文本文件,并附加到相应的文件。

我已经尝试了几个命令,主要是[System.IO.File] :: AppendAllText,但我似乎无法随意使用它。

我应该以正确的方式做任何想法?

三江源。

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

$path = 'C:\Users\XX\Desktop\Powershell\Zip'

$files = Get-ChildItem $path -Recurse -Exclude '*.info' 

$ComputerName = (Get-WmiObject Win32_Computersystem).name

foreach($file in $files) {

    $OutputFilePath = "C:\Users\XX\Desktop\info\"+ $file.Name + ".txt"

    [System.IO.File]::WriteAllText($OutputFilePath, $file.FullName)

    $file.lastwritetime | Add-Content $OutputFilePath

    $ComputerName | Add-Content $OutputFilePath
}