Windows 7 - Temukan semua file yang sendirian di folder

10

Saya perlu menemukan cara untuk memilih semua file yang sendirian di folder mereka, sehingga saya dapat memotong dan menempelkannya di tempat lain. Semua folder terkait berada di dalam satu folder root utama. Apakah ada command prompt, atau trik komandan total untuk ini?

Spaceploit
sumber
Apa yang Anda inginkan terjadi pada subdirektori? Apakah Anda menandai satu-satunya file dalam direktori yang juga berisi satu atau lebih subdirektori? Atau satu subdirektori di mana tidak ada file lain di induknya?
AFH

Jawaban:

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%"
        )
    )
)

Batch ini akan mencari di dalam C:\TEST 1sub folder dan menghitung file. setelah menemukan file yang kesepian itu akan memindahkannya ke C:\TEST 2. itu juga akan meminta ditimpa jika nama file sudah ada.

Ganti C:\TEST 1dan C:\TEST 2dengan nilai Anda sendiri.

Anda dapat menambahkan pausedi akhir kumpulan untuk membaca jumlah file yang digaungkan olehnya.

Maher Fattouh
sumber
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
        }
    }
}

Ini harus bekerja di Powershell, ganti src dan target. Jika Anda memiliki nama file yang sama, itu tidak akan ditimpa. Anda dapat menambahkan gaya pada Move-Item untuk mewujudkannya.

Ini mungkin bisa dipadatkan, saya pemula dengan PowerShell.

clarkn
sumber