2016-06-15 2 views
0

기본 폴더에 하위 폴더가 많이 있고 내부에 Excel 파일이 있다고 가정 해 봅시다. 모든 하위 폴더에서 파일 이름의 특정 부분을 변경하고 싶습니다. 최선을 다했는데 일괄 처리가 처음인데 해결 방법을 모릅니다. 예를 들어 : - 현재 버전 file123 2016.xlsx - 예상 버전 file123 2017.xlsxRe : 이름 바꾸기 일괄 수정 : 파일 이름의 일부를 일괄 변경하는 방법

내 시도 :

@echo off 
cd C:\example\ 

    setlocal EnableDelayedExpansion 
    Set var1=2016 
    Set var2=2017 
    for /r %%G in (*.xlsx) do (
    set "filename=%%G" 
    ren "!filename!" "!filename:%var1%=%var2%!" 
) 

당신이 어떤 해결책을 가지고 있다면 알려주세요! 고마워! :)

+3

왜 여기에 있으십니까? –

+0

무엇을 의미합니까? 나는 여기에서 새롭다, 아마 나는 규칙에 고집하지 않는다? 그것은 나의 첫 번째 게시물, 나는 내 게시물 실수 했어? –

+0

대문자로 표시된 게시물 제목을 쓸 필요가 없습니다. 어떤 것이 든, 당신은 그것없이 더 좋은 반응을 얻을 것입니다. –

답변

0

라인에 후행 공백이 있습니다. Set var1=2016. 일괄 처리는 공백에 관해서 까다롭기 때문에 공백은 변수의 일부입니다. 이를 방지하려면 다음 구문을 사용합니다

set "var1=2016" 

또 다른 오류 :

ren /?는 말한다 : ren [drive:][path]filename1 filename2
당신은 대상 이름에 대한 경로를 제공 할 수 없습니다.

이 시도 :

for /r %%G in (*.xlsx) do (
    set "filename=%%~nxG" 
    ren "%%G" "!filename:%var1%=%var2%!" 
) 

%%~nxG 당신에게 N 화염 및 전자 X 긴장 만 제공

.

+0

해결되었지만 코드가 제대로 작동하지 않습니다. 오류가 어디 있는지 모르겠지만 유용한 의견을 주셔서 감사합니다! –

+0

"제대로 작동하지 않음"을 정의하십시오. errormessages를 보려면'@echo off'를 제거하십시오. 아래 – Stephan

+0

이 첫 번째 코드는 내가 예상대로 작동 CD를 C : (. * % xslx %) "! 파일 이름을!"에서 %% f를위한 \ 예 \ ( 세트 "파일 이름 = %% f를" REN을! " 파일 이름 : % var1 % = % var2 %! " pause> nul 여기서 문제가 발생합니다. 이름을 변경하기 위해 모든 하위 폴더를 탐색하고 파일을 찾는 방법을 모르겠습니다. 오류는 구문 오류입니다. SETLOCAL EnableDelayedExpansion 세트 VAR1 = 2,019 세트 VAR2 = 2,016 CD의 C : \에서/R/D의 %% G 않음 ( 세트 'FILENAME = %% G " REN 예제 \ (* % xslx %). "! 파일 이름!" "! 파일 이름 : % var1 % = % var2 %!" ) 일시 중지> nul –

관련 문제