답변:
내 원래 게시물은 이동 명령에 파일 확장자를 포함하지 않았습니다.
%~ni
기본 이름 만 반환하므로%~nxi
파일 이름과 확장자를 모두 얻는 데 사용해야 합니다! 내 계정에서 파일 이름을 엉망으로 만들지 않았기를 바랍니다! (
명령 프롬프트에서 :
cd /d C:\Path\To\A
for /r %i in (*) do @move "%i" "%~nxi"
나중에 빈 폴더를 정리해야하는 경우 :
for /d %i in (*) do @rd /s /q "%i"
이제 파일 이름 충돌이 발생하면 스스로 해결 한 것입니다. 덮어 쓰기를 강제 하기 위해 명령에 /y
매개 변수를 추가 할 수 있습니다 move
( "%i"
). 다른 것을 원한다면 모든 것을 자동으로 바꿀 수있는 다른 프로그램이 필요합니다.
배치 파일이 사용하려는 경우 또한, 모든 변경 %
에 %%
.
FOR /r
-좋아요!
폴더를 작성하고 다른 모든 폴더를 폴더에 복사 한 후 해당 폴더를 마우스 오른쪽 단추로 클릭하고 검색을 선택하십시오 . 검색 상자에을 입력하십시오 *.*
.
모든 파일과 폴더가 나열됩니다. 루트 디렉토리에서 원하는 모든 파일을 선택하고 잘라내십시오. 루트 디렉토리로 이동하여 모든 파일을 붙여 넣습니다.
Cygwin (또는 Windows 용 다른 Unix 환경)을 설치하고 다음을 실행하십시오.
cd A
find . -type f -exec mv {} . \;
mv
와 find
변형 에 따라 find . -type f -exec mv -t . {} \;
대신 사용해야 할 수도 있습니다 .
mkdir -p a/a1 a/a2 a/a3 b/b1 b/b2 b/b3 c
그리고 touch a/a1/foo a/a1/bar a/a2/baz a/a3/qux b/b1/quux b/b2/quuux b/b3/quuuux c/ccc
준비를 위해.
find . -type f -exec mv {} . ;
정상적으로 작동하는 것 같습니다.