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, чтобы это произошло.

Это может быть сжато, я новичок в PowerShell.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.