如何使用PowerShell在所有空文件夹中创建空文件?

问题描述 投票:1回答:4

我想在所有子文件夹中创建空文本文件。以下脚本将列出所有空子文件夹。

$a = Get-ChildItem D:\test -recurse | Where-Object {$_.PSIsContainer -eq $True}
$a | Where-Object {$_.GetFiles().Count -eq 0} | Select-Object FullName

如何迭代上述命令的输出并在其中创建空文本文件?

powershell
4个回答
1
投票

你为自己做的答案中有太多的循环。我提供这个解决方案,它将在没有文件的所有目录中创建一个空文件(如果他们有文件夹,那么从你的解决方案中就可以了,所以我保持这个逻辑。)

Get-ChildItem -Recurse C:\temp | 
        Where-Object {$_.PSIsContainer -and ($_.GetFiles().Count -eq 0)} | 
        ForEach-Object{[void](New-Item -Path $_.FullName -Name "Touch.txt" -ItemType File)}

如果$_.PSIsContainer为false,那么它将不会打扰检查文件的其他条件。还将New-Item的输出转换为void以停止成功创建所有这些新文件的输出。


0
投票

以下代码对我有用。

$a = Get-ChildItem D:\test -recurse | Where-Object {$_.PSIsContainer -eq $True}
$path = $a | Where-Object {$_.GetFiles().Count -eq 0} | foreach {$_.FullName}
$a | Where-Object {$_.GetFiles().Count -eq 0} | foreach {$_.FullName}|ForEach-Object -Process {New-Item -Path $path -Name "testfile.txt" -Value "Test Value" -ItemType File }

0
投票

如何确保..这不会在目录中创建文件,该目录中包含子目录。

即应在没有文件和子目录的目录中创建文件


0
投票

这对我有用..它只在目录既没有子目录或文件时才创建文件

$a = Get-ChildItem C:\tejasoft -recurse | Where-Object {$_.PSIsContainer -eq $True -and ($_.GetDirectories().Count -eq 0)}
$path = $a | Where-Object {$_.GetFiles().Count -eq 0} | foreach {$_.FullName}
$a | Where-Object {$_.GetFiles().Count -eq 0} | foreach {$_.FullName}|ForEach-Object -Process {New-Item -Path $path -Name ".keep" -Value "Test Value" -ItemType File }
© www.soinside.com 2019 - 2024. All rights reserved.