잠재적으로 숫자 하이픈을 포함 할 수있는 배치 파일에 입력을 받아야합니다. 1-5는 사용자의 입력으로 1, 2, 3, 4 및 5를 의미합니다.두 숫자 사이의 시퀀스를 나타내는 하이픈을 사용한 숫자 배치 입력
나는 사용자로부터 하나의 문자 입력을받는 방법을 알고 있지만 입력을 5 개 (또는 그 이상)의 개별 항목으로 나눠서 배플을한다.
잠재적으로 숫자 하이픈을 포함 할 수있는 배치 파일에 입력을 받아야합니다. 1-5는 사용자의 입력으로 1, 2, 3, 4 및 5를 의미합니다.두 숫자 사이의 시퀀스를 나타내는 하이픈을 사용한 숫자 배치 입력
나는 사용자로부터 하나의 문자 입력을받는 방법을 알고 있지만 입력을 5 개 (또는 그 이상)의 개별 항목으로 나눠서 배플을한다.
for /f
을 delims
과 함께 사용하면 문자열을 분리 할 수 있습니다. 범위를 루프하려면 for /L
을 사용할 수 있습니다. 명령 행에 help for
을 입력하여 루프 유형을 읽으십시오.
@echo off
set /p "input=Enter a number or range: "
REM The user must enter either a plain number or a range. Either way, we split
REM the user input on the minus sign. If there's no minus sign, then only
REM %upper% won't get a value.
for /f "usebackq delims=- tokens=1,2" %%a in ('%input%') do (
set "lower=%%a"
set "upper=%%b"
)
REM If %upper% has a value, then input was a range. Otherwise, input contained
REM a single number.
if not "%upper%"=="" goto :handle_range
echo Single number: %lower%
goto :eof
:handle_range
echo Range %lower% to %upper%
REM We can use the numeric for loop to loop over the full range.
for /l %%i in (%lower%, 1, %upper%) do (
echo %%i
)
goto :eof
큰 감사 @indiv. 이제이 루프를 사용하여 (루프의 숫자가 폴더 이름 임) 동일한 번호의 접두사가있는 여러 파일을 단일 폴더에서이 번호가 매겨진 폴더로 반복적으로 복사해야합니다. 그 일을 어떻게 하죠? 귀하의 의견에 다시 한번 감사드립니다. – Lawivido
@echo off
set /P "input=Enter a number or range: "
for /F "tokens=1,2 delims=-" %%a in ("%input%") do (
set lower=%%a
set upper=%%b
)
if not defined upper set upper=%lower%
for /L %%i in (%lower%,1,%upper%) do (
echo Process number %%i
)
덕분에 팁을 위해, 그 체크 표시를 보지 못했다. :) – Lawivido