关于如何使用此PowerShell脚本基于文件夹中的文件创建txt文件,我收到了一些很好的建议。
Get-ChildItem -Path "C:\Users\temp\" -Recurse -File |
Where-Object {$_.Extension -notin '.txt'} |
ForEach-Object {
[System.IO.File]::WriteAllText("C:\Users\temp\" + $_.BaseName + ".txt", $_.FullName)
}
我将如何修改此脚本以仅基于文件夹创建txt文件,而忽略这些文件夹中包含的文件?
谢谢!
答案 0 :(得分:1)
使用更多的PowerShell样式和cmdlet将是:
$path = 'C:\Users\temp'
Get-ChildItem -Path $path -Recurse -Directory |
Where-Object {$_.Extension -ne '.txt'} |
ForEach-Object {
Add-Content -Path (Join-Path -Path $path -ChildPath ($_.BaseName + ".txt")) -Value $_.FullName
}
p.s。我将-notin
更改为-ne
,因为在这里比较合适,因为您只比较单个字符串,而不是数组。
答案 1 :(得分:0)
在旧的PowerShell版本中,您必须执行| Where-Object {$_.PSIsContainer -re $true}
但是如今,只需将-file
替换为-directory