2017-11-24 2 views
0

일괄 처리를 사용하여 여러 파일의 확장명을 한 번에 바꾸려고합니다. 그러나 나는 올바른 방향으로 가고 있는지 확신하지 못합니다. 배치 스크립팅을 배우고 있습니다.일괄 처리로 이름 바꾸기

예 ABCDEFRGGT.word.docx -> ABCDEFRGGT.docx

내가 지금까지 시도했지만 작동하지 않습니다.

cd /d C:\Users\XXXX\Documents\rename 
ren '*.word.docx' *.docx 
+0

아니 솔루션,하지만!' – aschipfl

+1

를' "'에서'대체 [Windows 배치 스크립트로 디렉토리의 모든 파일 이름 바꾸기] 가능한 복제본 (https://stackoverflow.com/questions/9383032/rename-all-files-in-a-directory-with-a-windows-batch-script)) – MatSnow

+2

주석으로 : 당신은 _not_ "확장명을 바꾸는 중"입니다. 파일은 rena med :'.docx' – Aacini

답변

1

이 같은 파일 확장명을 분할하는 for loop과 변수 참조를 ~ 수정을 사용

for %%I in ("%USERPROFILE%\Documents\rename\*.word.docx") do (
    rem // `%%~nI` returns the file name with the (last) extension removed: 
    for %%J in ("%%~nI") do (
     rem /* `%%~nJ` returns the file name with the next-to-last extension removed too; 
     rem `%%~xI` returns the original (last) file name extension: */ 
     ren "%%~I" "%%~nJ%%~xI" 
    ) 
) 
+1

@ user3758867 첫 번째 괄호 안에'cd' 명령을 포함시키지 않아도됩니다. 여기서는 단일 배치 파일 행으로, For %% In In "% UserProfile % \ Documents \ rename \ *. word.docx"에 대해 수행합니다. %% J In ("%% ~ nI") Do Ren " %% ~ I ​​""%% ~ nJ %% ~ xI "'. – Compo