Windows 7 - Знайдіть усі файли, які є окремими у папці


10

Мені потрібно знайти спосіб виділити всі файли, які є одними у своїх папках, щоб я міг вирізати та вставити їх десь ще. Усі відповідні папки знаходяться всередині однієї основної кореневої папки. Чи є для цього командний рядок чи загальна хитрість командира?


Що ви хочете статися в підкаталогах? Чи позначаєте ви єдиний файл у каталозі, який також містить один або кілька підкаталогів? Або єдиний підкаталог, де немає інших файлів у його батьківському?
AFH

Відповіді:


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 1і C:\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, щоб це сталося.

Можливо, це може бути скороченим, я початківець з повноваженнями.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.