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

Appending outputs to existing text file

我在下面有一段 powershell 代码,它从文件夹 C:\Users\XX\Desktop\Powershell\Zip 中的每个单独的 zip 文件在文件夹 C:\Users\XX\Desktop\info\ 中创建一个单独的文本文件,名称为文本文件是 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)} 

最重要的是,我有下面的脚本,它获取 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,但我似乎无能为力。

我应该以正确的方式做这件事有什么想法吗?

谢谢。

你可以试试这个:

$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
}