2014-10-04 4 views
0

주제에 대한 여러 게시물을 보았습니다. 다른 해결책을 적용하려했지만 작동하지 못했습니다. 내가 파일 xx_date.ext1xx_date_suf.ext2 일괄 변경해야합니다 집합이 있습니다. 하지만 파일이있는 전체 디렉토리 경로를 나열해야합니다. 그것. dos 파일을 할려고. 나는 게시물 중 하나에서 발견 된 몇 가지 사소한 변경이 솔루션을 적용하려고 :전체 파일 경로를 나열하는 .bat 파일의 배치 파일 이름

setlocal ENABLEDELAYEDEXPANSION 
for %%i in (<Directory name here>\*) do (
    set filename=%%~ni 
    ren "%%~i" "!filename:~0,5!%%~xi" 
) 

endlocal 

아무 소용이 있습니다. 위의 솔루션은 파일 이름에서 5 문자를 변경한다는 것을 알고 있지만 문자 수를 계산할 필요는 없습니다. 위에서 설명한 단순한 이름 바꾸기.

+0

귀하의 코드와 설명이 동일하지 않습니다. 'xx_date'는 정확히 7 자입니까, 아니면 다른 형식의 파일 이름입니까? – foxidrive

+0

나는 사용하려고했던 예제를 제공했지만 실제로는 캐릭터 길이를 다루고 싶지 않습니다. 확장명을 변경하고 접미사를 추가하십시오. – user3235631

답변

0

이 사용자가 제공 한 구두 설명을 작동합니다

@echo off 
cd /d "c:\folder" 
for %%a in (*.ext1) do ren "%%a" "%%~na_suf.ext2" 

또는이 :

@echo off 
for %%a in ("c:\folder\*.ext1") do ren "%%a" "%%~na_suf.ext2" 
+0

먼저 cd 명령을 실행하는 대신 전체 경로를 사용하지 마십시오. – user3235631

+0

원하는 경우 for 명령에서 경로를 사용할 수 있습니다. – foxidrive

관련 문제