배치 파일은 "* D.txt"로 끝나는 파일로 바꿉니다.


2

단일 디렉토리에있는 모든 파일의 이름을 바꾸려면 txt-files로 끝나야합니다. D.

여기에 배치에서 시도한 것이 있습니다 ...하지만 둘 다 작동하지 않았습니다.

----- try1 -----

@echo off
 set Quelle="C:\temp\TEST\IN\"
 Set DateiFilter="*D.txt"
 for /r %Quelle% %%i in (%DateiFilter%) do rename %%i %%~niI.txt
 end

----- try2 -----

@echo on
setlocal enableDelayedExpansion
set Quelle="C:\temp\TEST\IN\"
Set DateiFilter="*.txt"
set y="D"
set z="I"
for /r %Quelle% %%i in (%DateiFilter%) do (set x=%%i rename "%%i" "!x:D.txt=I.txt!")
pause
end

고맙습니다! :-) 나는 그것을 포맷했지만 캐리지 리턴을 인식하지 못했습니다. 죄송합니다 ;)
jennifer

+1 위대한 첫 번째 질문. "일하지 않았다"는 뜻을 확인할 수 있습니까? 그들은 모두 복사 했습니까? 아무것도 복사하지 않았습니까? 모든 파일이 복사 되었습니까?
Dave

"%% f" "%% ~ newName.txt"의 이름을 바꾸려면 (* D.txt에서) For %% f를 사용하는 것이 좋습니다.
Dave

감사합니다 @DaveRook! 이렇게하면 마지막에 D가있는 파일에 "I"를 올바르게 추가하여 이름을 바꿉니다. 하지만 D를 어떻게 대체 할 수 있습니까? 1234D.txt - & gt; 1234I.txt (D가 I로 대체 됨) 1234X.txt - & gt; 1234X.txt (동일하게 유지) 감사합니다 :)
jennifer

done ...이 작업은 다음과 같습니다. @echo off "C : \ temp \ TEST \ IN \"setlocal enabledelayedexpansion for / f "delims ="%% a in ( 'dir "* D.txt"/ b / ad ') do (set "name = %% ~ na"set "name =! name : ~ 0, -1!" "ren"%% a ""! name! %% ~ xa ") popd pause
jennifer

답변:


0

OP의 의견에 대한 답변

@echo off 
pushd "C:\temp\TEST\IN\" 
setlocal enabledelayedexpansion 
for /f "delims=" %%a in ('dir "*D.txt" /b /a-d ') do (
   set "name=%%~na" 
   set "name=!name:~0,-1!I" 
   ren "%%a" "!name!%%~xa"
)
popd 
pause 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.