从文件夹创建TXT文件的Powershell脚本

时间:2019-03-10 10:36:25

标签: powershell

关于如何使用此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文件,而忽略这些文件夹中包含的文件?

谢谢!

2 个答案:

答案 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