Windows 7-查找文件夹中单独存在的所有文件


10

我需要找到一种选择文件夹中所有单独文件的方法,以便可以将它们剪切并粘贴到其他位置。所有各自的文件夹都位于一个主根文件夹中。是否有命令提示符或总指挥技巧?


您想在子目录上发生什么?您是否在目录中也标记了一个唯一文件,该目录还包含一个或多个子目录?还是在其父目录中没有其他文件的单个子目录中?
AFH 2016年

Answers:


5
@echo off
Setlocal EnableDelayedExpansion

SET ROOT_FOLDER=C:\TEST 1
SET TARGET_FOLDER=C:\TEST 2

FOR /D %%G IN ("%ROOT_FOLDER%"\*) do (
CD %%G
    FOR /f %%A in ('dir ^| find "File(s)"') do (
        set cnt=%%A
        Echo %%G  : !cnt!
        IF !cnt! == 1 (
            move /-y "*.*" "%TARGET_FOLDER%"
        )
    )
)

该批处理将在C:\TEST 1子文件夹中查找计数文件。一旦找到一个孤独的文件,它将移至C:\TEST 2。如果文件名已经存在,它也会要求覆盖。

用您自己的值替换C:\TEST 1C:\TEST 2

您可以pause在批处理末尾添加以读取回显的文件计数。


6
$src = "G:\temp"
$target = "G:\notalone"

if (Test-Path $src)
{
    $folders = Get-ChildItem $src -Recurse | ?{ $_.PSIsContainer }
    foreach($folder in $folders)
    {
        $fc = Get-ChildItem $folder.FullName | ?{!$_.PSIsContainer} | Measure-Object | Select-Object -Expand Count
        if ($fc -eq 1)
        {
            $file = Get-ChildItem $folder.FullName | ?{!$_.PSIsContainer} | Select-Object
            Write-Host "Moving " $file.FullName " to " $target
            Move-Item $file.FullName $target
        }
    }
}

这应该在Powershell中起作用,替换src和target。如果您使用相同的文件名,则不会覆盖。您可以向Move-Item添加力量以实现此目的。

这可能很简明,我是Powershell的新手。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.