Gar*_*ett 1 powershell rename-item-cmdlet
我一直在寻找这个问题的帮助几个小时没有运气.我的脚本监视一个文件夹,查找超过12分钟以".tmp"结尾的文件.然后删除'.tmp'.这部分工作正常.
我希望脚本输出一个文本文件,其中包含重命名的文件的文件名.使用下面的脚本,文本文档是空的.
#Computer name from Description
$ComputerName = Get-WmiObject -Class Win32_OperatingSystem | Select Description
$ComputerName = "$ComputerName".split("}")
$ComputerName = "$ComputerName".split("=") | Select-Object -Last 1
$ComputerName = "$ComputerName".split(" ") | Select-Object -First 1
#$ComputerName = $env:computername
Write-Host "This is the computer name: $ComputerName"
$c1Output = 'E:\' + $ComputerName + '\Capture One Session\Output\Market\'
get-childitem -Path "$c1Output" -Filter *.tmp |
where-object {$_.LastWriteTime -lt (get-date).AddMinutes(-12)} |
rename-item -newname { $_.name.substring(0,$_.name.length-4) }
out-file \\server\Report.txt
Run Code Online (Sandbox Code Playgroud)
这应该很容易理解,但我仍然是PowerShell的新手.
谢谢!
你的问题在这里:
get-childitem -Path "$c1Output" -Filter *.tmp |
where-object {$_.LastWriteTime -lt (get-date).AddMinutes(-12)} |
rename-item -newname { $_.name.substring(0,$_.name.length-4) }
out-file \\server\Report.txt
Run Code Online (Sandbox Code Playgroud)
您需要进行两项更改:将-Passthru开关添加到您的调用中Rename-Item,并将结果传递给您Out-File:
get-childitem -Path "$c1Output" -Filter *.tmp |
where-object {$_.LastWriteTime -lt (get-date).AddMinutes(-12)} |
rename-item -newname { $_.name.substring(0,$_.name.length-4) } -Passthru |
out-file \\server\Report.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |