Скрипт Powershell для создания TXT-файлов из папок - PullRequest
1 голос
/ 10 марта 2019

Я получил несколько отличных советов о том, как создавать текстовые файлы на основе файлов в папке с помощью этого сценария PowerShell.

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

Как изменить этот сценарий для создания текстовых файлов только на основе папок,и игнорировать файлы, содержащиеся в этих папках?

Спасибо!

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Использование немного большего стиля и командлетов PowerShell будет:

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

ps. Я изменил -notin на -ne, потому что это более уместно, поскольку вы сравниваете только одну строку,не массив.

0 голосов
/ 10 марта 2019

В старых версиях PowerShell вам нужно было бы сделать | Where-Object {$_.PSIsContainer -re $true}

, но в настоящее время просто замените -file на -directory

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...