Endoro는 명시된 문제에 대한 좋은 작업 솔루션을 가지고 있습니다. 또 다른 옵션은 파일이있는 위치를 간단히 푸시하는 것입니다. 그런 다음 더 이상 코드의 나머지 부분에 경로를 포함 할 필요가 없습니다.
질문과 관련이없는 다른 요점 :
다른 프로세스가 이미 값을 숫자로 설정하는 경우를 대비하여 카운터를 0으로 초기화하는 것이 좋습니다.
당신은 정말로 필요하지 않습니다 nname
변하기 쉬운.
통화 구조를 사용할 필요가 없도록 카운터 값을 변수로 전송하는 것이 좋습니다. (모르는 사람들을 위해 지연된 확장 토글은 보호하는 것입니다. !
파일 이름에있을 수있는 문자).
@echo off
setlocal
set "name1=Bart"
set "name2=Carl"
set "name3=Judy"
pushd "C:\Users\%username%\Downloads"
set /a counter=0
for /f "delims=" %%a in ('dir Export_*.csv /b /a-d /o-d') do (
set "fname=%%~a"
set /a counter+=1
setlocal enableDelayedExpansion
for %%N in (!counter!) do (
endlocal
ren "!fname!" "!name%%N!.csv"
)
)
popd
마지막으로, /n 옵션을 사용한 Findstr는 전화 또는 추가로 추가로 제거 할 수 있습니다.
@echo off
setlocal
set "name1=Bart"
set "name2=Carl"
set "name3=Judy"
pushd "C:\Users\%username%\Downloads"
for /f "tokens=1* delims=:" %%A in (
'dir Export_*.csv /b /a-d /o-d ^| findstr /n "^"'
) do (
set "fname=%%~B"
setlocal enableDelayedExpansion
ren "!fname!" "!name%%A!.csv"
endlocal
)
popd