모든 파일 이름이 다를 경우 Windows 7에서 폴더를 평평하게하려면 어떻게해야합니까?


19

예를 들어 다음과 같은 폴더 계층 구조가 있다고 가정하십시오.

Folder1
   File1
   Folder2
      File2
   Folder3
      File3
      Folder4
         File4

결과를 얻는 명령을 수행하고 싶습니다.

Folder1
   File1
   File2
   File3
   File4

또는 비슷한 것. 나는 Windows에 익숙하지 않으므로 가능한 대답에 최대한 자세하게 감사하겠습니다.


이를 위해 기존 프로그램을 찾고 있습니까, 아니면이를 수행하는 코드 (어떤 프로그래밍 언어)를 찾으십니까?
매트 볼

@ Matattall : 나는 이것을 할 수있는 가장 쉬운 방법을 찾고 있습니다. 이상적으로 이것은 터미널을 열고 명령을 입력하는 것입니다. 다시 한 번 Windows에 익숙하지 않으므로 더 좋은 방법이 있는지 알려주십시오. 감사.

답변:


32

가장 쉬운 방법은 공통 루트 폴더를 입력하고 모든 파일을 검색하는 것입니다 (예 : * 검색). 모든 파일을 찾으면 모든 파일을 표시하고 Ctrl + X를 누르고 공통 루트 폴더로 다시 이동하십시오. 이제 Ctrl + V를 눌러 모든 파일을 루트 폴더에 붙여 넣으십시오. 완료되면 모든 서브 디렉토리를 삭제하십시오.

이것이 일괄 작업으로 수행 될 수 있는지 모르겠습니다.


1
나는 이것의 단순함을 좋아하지만 40k 파일로 시도하고 탐색기 프로세스를 중단했습니다.
UpTheCreek

총 사령관의 대답이 더 쉬워 보입니다.
Ev0oD

13

큰 계층 구조 (필자의 경우 png)를 평평하게해야 할 때이 파워 쉘 접근 방식을 결국 사용했습니다.

Get-ChildItem C:\sourcefolder -Recurse -Filter "*.png" | Copy-Item -destination C:\destinationfolder\

평탄화의 경우 Move-Item이 더 적합합니까?
geisterfurz007이 혼란을 막으십시오

4

Windows exe : http://en.sourceforge.jp/projects/sfnet_flatfolder/

또는 AHK :

fileselectfolder,MyFold,::{20d04fe0-3aea-1069-a2d8-08002b30309d}
SetWorkingDir, %MyFold%
loop, *.*,0,1
{
  parentpath := RegExReplace(A_LoopFileDir,"\\","-")
  ;StringReplace, parentpath, A_LoopFileDir, \,-,All
  newname = %parentpath%-%A_LoopFileName%
  ;msgbox %newname%
  If a_loopfiledir <>
    filemove, %a_loopfilefullpath%,%newname%
}

loop, %myfold%\*.*,2,1
  fileremovedir, %a_loopfilefullpath%,1

exitapp

또는 Directory Opus를 사용하십시오

또는 Powershell

(ls -r -include *.jpg) | % { mv -literal $_ $_.Name.Insert(0, [String]::Format("{0} - ", $_.Directory.Name))}

또는 배치 (위에서 언급 한 바와 같이)

또는 위에서 언급 한대로 수동 검색, 잘라 내기 및 붙여 넣기

기술과 성향에 따라 여러 가지 방법 중 하나를 선택하고 필요에 따라 조정할 수 있습니다.

위 작업 후에이 빈 디렉토리 제거 가 필요할 수 있습니다.


1
powershell 명령은 짧고 잘 작동합니다
Maxim Yefremov

3

때때로 수동으로 dir을 수동으로 전개 해야하는 경우 Total Commander 가 완벽합니다.

총 사령관에서 : 평평하려는 디렉토리로 이동하십시오. 메뉴에서 명령> 분기보기를 클릭하십시오 . 그리고 모두 평평하게 보이면 다른 폴더로 이동 / 복사 할 수 있습니다.

파일 이름으로 약간 땜질 해야하는 경우 : 평평한보기에서 모든 파일을 선택하고 메뉴에서 파일> 다중 이름 바꾸기 도구로 이동하십시오 . 여기에서 "이름 바꾸기 마스크"를 사용하여 경로에서 실제 파일 이름으로 정보를 추가 할 수 있습니다. 여기에서 플러그인 태그 / 버튼, 검색 및 바꾸기 기능 및 작은 폴더 버튼 만 사용하면 파일 이름을 마지막으로 편집 할 수 있습니다. 텍스트 에디터. 복잡하게 들릴 수 있지만 실제로 가장 쉬운 방법은 IMO :)


Windows Commander 란 무엇입니까? 총 사령관을 의미합니까?
UpTheCreek

정확히 :) 10 년 동안 사용해 왔으며 그 당시의 이름은 Windows Commander였습니다. 편집 됨
teejay

감사. 그냥 해봐 40k 작은 파일에서는 작동하지 않습니다 : (10 분 동안 많은 CPU를 소비 한 후 반복되는 '파일 생성'오류가 발생했습니다.
UpTheCreek

CPU 사용과 내재 된 속도 저하는 유감 스럽지만 이해할 수 있습니다.) 오류는 다른 것입니다. 이름이 잘못되거나, 총 사령관 버그이거나 TC가이 많은 파일을 처리 할 수없는 것일 수 있습니다. 내가 먼저 파일의 적은 수의 이름을 바꾸는 시도하거나 TC의 최신 버전 사용합니다
teejay

@teejay, 나는 당신의 제안의 세부 사항을 위해 낚시를해야했지만 마침내 그것을 만들었습니다. expander2 플러그인을 사용하여 경로의 일부를 추출하여 파일 이름의 접두사로 만들었습니다. 다음 사람에 대한 세부 정보를 추가 할 수 있습니다. Tx.
killogre

3

기술적으로 기울어지지 않은 사람들을위한 명령 줄 옵션으로 매우 간단합니다.

  1. "flatten.cmd"라는 파일을 작성하십시오
  2. 메모장에서 해당 파일을 엽니 다
  3. 파일에서 다음을 배치하십시오.

    FOR /R {SourcePath} %%G IN (*.mp3) DO move "%%G" {Destination}
    
  4. "{SourcePath}"를 병합하려는 폴더로 바꾸십시오. 귀하의 경우 "c : \ Folder1"

  5. "{Destination"}을 파일을 이동하려는 폴더로 바꾸십시오. 귀하의 경우에도 "c : \ Folder1". 코드는 이제 다음과 같아야합니다.

    FOR /R c:\Folder1 %%G IN (*.mp3) DO move "%%G" c:\Folder1
    
  6. 명령 행 창을여십시오. 이 방법은 여러 가지가 있지만 빠릅니다.

    • 시작 버튼을 클릭하십시오
    • 모든 프로그램을 클릭하십시오
    • 액세서리 클릭
    • 명령 프롬프트를 클릭하십시오
  7. 명령 행 창에서 다음을 입력하십시오.

    cd {folder where you put the flatten.cmd file}
    flatten
    

그리고 그렇게 할 것입니다 (Windows 8 이상) 방금 10,000 개의 음악 파일 폴더를 평평하게하기 위해 그렇게했습니다. 매력처럼 작동합니다.

FOR 명령 행 유틸리티에 대한 옵션은 https://technet.microsoft.com/en-us/library/bb490909.aspx 에서 찾을 수 있습니다 .


1

배치 스크립트 사용 (내 머리 꼭대기에서) :

FOR 명령을 찾으십시오

첫 번째 줄은 모든 파일을 하위 디렉토리에서 루트로 이동합니다. 두 번째 줄은 하위 폴더를 삭제합니다.

for /f %f in ('dir "c:\folder\*" /s/b/a-d') do if not %~ff"=="c:\folder" move "%f" "c:\folder"
for /f %f in ('dir "c:\folder\*" /s/b/ad') do if not "%~ff"=="c:\folder" rd /s/q "%f" 

그래서 터미널을 열고이 명령을 입력해야합니다. '폴더'를 적절한 경로로 바꾸어야합니까? 감사.

스크립트로 작성하지 않으려면 예. OTOH .....
Preet Sangha

이것을 상황에 맞는 메뉴 작업에 일반화하고 첨부 할 수 있습니까? 파일을 마우스 오른쪽 버튼으로 클릭하고 "Flatten File"을 클릭 한 다음 파일 내의 모든 파일을 폴더 수준으로 이동 시키려고합니다. 폴더를 삭제하면 좋을 것입니다.
MAW74656

예, 폴더 이름이 % 1 인 배치 파일에 넣을 수 있습니다. stackoverflow.com/questions/6162415/…
Preet Sangha

당신이 도움을 줄 수 -Perhaps superuser.com/q/552768/59747
MAW74656

1

안녕하세요. xxcopy (www.xxcopy.com) 도구 인 xrio는 steriods (sort-of)에서도 사용할 수 있습니다. 이 도구를 사용하면 폴더의 파일을 하나의 폴더로 "평평하게"만들 수 있습니다.

c :> xxcopy / source-folders / flatten / SG

이 링크를 읽으십시오 : http://www.xxcopy.com/xxcopy16.htm

건배.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.