将输出附加到现有文本文件
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
}
我在下面有一段 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
}