명령 프롬프트를 사용하여 여러 폴더에서 모두 상위 디렉토리로 파일 이동


8

다음과 같이 여러 폴더에 여러 .rar 파일이 있습니다.

C:\Docs\Folder1\rarfile1-1.rar
C:\Docs\Folder1\rarfile1-2.rar
C:\Docs\Folder1\rarfile1-3.rar  

C:\Docs\Folder2\rarfile2-1.rar
C:\Docs\Folder2\rarfile2-2.rar
C:\Docs\Folder2\rarfile2-3.rar  

C:\Docs\Folder3\rarfile3-1.rar
C:\Docs\Folder3\rarfile3-2.rar
C:\Docs\Folder3\rarfile3-3.rar  

모든 .rar 파일을 상위 디렉토리 'C : \ Docs'로 이동하고 싶습니다. 폴더가 3 개 이상이므로 배치 파일이나 무언가를 만들 생각이었습니다. 이를 수행하는 명령은 무엇입니까?
감사


비슷한 문제를 검색 했으며이 답변 이 유용하다는 것을 알았습니다 .
lalthomas

답변:


15

난 그냥 수행하는 명령 줄 응용 프로그램을 만들었 정확히 이 (플러스 쇼 일부 통계)와 누군가가 내가 그것을 파악하는 데에서 누군가 저장을 공유 할 수 있도록 일을하려고하고 있는지 확인하기 위해 검색.

쓰는 것은 재미있었습니다. .NET 3.5가 필요하며 명령 줄에서 작동하며 -h를 사용하거나 매개 변수없이 사용하십시오.

MoveFilesUpFromSubfolders
(소스 코드)

더하기 피드백! :)

아, 그리고 어떻게 보이는지 스크린 샷 :

                               


3
+1 누군가의 문제를 해결하기위한 프로그램 작성. 그 약속입니다!
Li-aung Yip

1
@ Li-aungYip 칭찬에 대단히 감사합니다! 또한 상황으로 인해 더 이상 내가 이것을 만들 때 코딩했던 하드 드라이브가 없어서 (이것과 다른 많은 것들을 잃어 버렸습니다), 여기에서보고 기뻐했습니다 ( 몇 번의 다운로드로 오랫동안 저장해 놓은 Mediafire에 대한 kudos이며 Megaupload에 저장하지 않은 것이 행운입니다!). 그래서 당신이 그것을 원근법으로 표현하면, 더 많이 줄수록 더 많이받을 수 있습니다 :)
Camilo Martin

훌륭한 일! +1 및 50 회 나는 이것이 4.5 세라는 것을 알고 있지만 90 + 폴더에있는 90 + 파일을 다운로드했기 때문에 이것은 매우 유용했습니다. 이를 통해 모든 파일을 상위 폴더에 넣을 수있었습니다.

내가 가지고있는 유일한 비판은 이것을 사용하려고 할 때 폴더의 문제에 대한 오류가 계속 발생하고 그 이유를 밝히지 않았다는 것입니다. -t 명령을 사용해야 만 폴더에 문제가 발생한 이유를 확인할 수있었습니다 (250 개 이상의 문자로 이름이 지정 되었기 때문에). 이것은 모든 폴더를 강조 표시하고 그 중 하나의 이름을 바꾸면 쉽게 우회됩니다 (나머지에는 숫자가 추가됨).

@ edmastermind29 나는 그런 오래된 코드가 여전히 누군가에게 사용되고 있다는 것을 알게되어 매우 기쁩니다. 믿거 나 말거나 소스 코드 아카이브는 저작권 침해 (비디오 또는 오디오가 아니라 텍스트 만 있음을 고려하면 매우 터무니 없습니다)로 인해 미디어 파이어에서 제거되었습니다. . 그것이 쓸모가 있다면,이 시점 mv dir/sub/* dir; rmdir dir/sub에서 루프 와 같은 문제를 처리하기 위해 bash one-liner를 작성합니다 .
카밀로 마틴

7

이것을 시도하십시오 :

for /d %f in (docs\*) do (
pushd %f
move .\*.* ..
popd
)

좀 더 설명해 주시겠습니까?
Nick

@Nick :의 모든 폴더에 대해 folder를 docs입력하십시오. 모든 파일을 현재 폴더에서 상위 폴더로 이동하십시오. 상위 폴더로 돌아갑니다.
Hello71

pushd와는 popd정말 필요하지 않습니다. cd잘 작동합니다.
Hello71

Hello71에서 설명한대로. 또한 한 줄로도 가능합니다 :for /d %f in (docs\\*) do move %f\\*.* docs
BillP3rd

1
NB. 위의 원본이나 단일 라이너는 중복 파일 이름을 올바르게 처리하지 않습니다.
BillP3rd

5

질문에 대한 대답은 매우 간단합니다. 스크립트는 아니지만 그렇게 할 것입니다.

나는 당신이 창문을 돌리고 있다고 가정했습니다.

  • C : \ Docs 디렉토리에 자신을 배치
  • F3을 누릅니다 (검색)
  • * .rar 검색
  • Crtl + A를 누르십시오
  • Ctrl + X를 누르십시오
  • 검색 창을 닫고 다시 탐색기에서 C : \ Dosc로 이동하십시오.
  • Ctrl + V를 눌러 잘라낸 파일을 붙여 넣습니다.

타사 또는 스크립트없이 간단하고 간단한 해결 방법으로 +1
Syakur Rahman

+ 1 최고의 빠른 방법 A +++
Sickest

3

이 문제에 대해 석션이 효과가있었습니다.

Suction은 지저분한 폴더를 한 번에 정리하는 데 도움이되는 무료 휴대용 앱입니다.

흡입은 상위 디렉토리를 통합하여 작동합니다. 예를 들어, 이미지 디렉토리에 불필요한 폴더가 가득 찬 경우 폴더를 흡입 인터페이스로 드래그하면 폴더가 없어지고 파일 만 남게됩니다. 이것은 많은 자료를 다운로드하는 사람들에게도 유용합니다.


0

하위 디렉토리에서 단일 디렉토리로 파일을 복사하거나 이동하는 예

/ f "토큰 = *"% a ( 'dir "C : \ Temp \ Epub * .epub"/ s / b')의 경우 / y "% a"C : \ Temp \ epub를 복사하십시오.

/ f "토큰 = *"% a ( 'dir "C : \ Temp \ Epub * .epub"/ s / b')의 경우 / y "% a"C : \ Temp \ epub

"토큰 = *은 특수 문자로 경로를 캡처하는 것입니다.


-1

이것은 작동해야합니다 :

move C:\Docs\*\* C:\Docs

2
파일 이름, 디렉토리 이름 또는 볼륨 레이블 구문이 잘못되었습니다.
Nick

**가 작동하지 않음
Nick

`\`를 넣고 텍스트 편집기에서 이스케이프되지 않도록해야합니다.
Hello71

CMD 프롬프트 (Windows 7의 경우)에서이 명령을 실행하면 Nick이 지적한 오류가 생성됩니다.
BillP3rd

작동하지 않습니다. * 폴더에는 제대로 작동하지 않습니다. Total Commander와 같은 타사 프로그램을 분리해야합니다.
surfasb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.