Sua tentativa tem problemas não resolvidos:
-
pesquise a sintaxe / l
-
números abaixo de 10 precisam de um zero inicial (resolvidos adicionando 100 e ocupando os dois últimos lugares)
- a variável
%%F
só é válida no escopo do comando for (mesma linha / bloco de código)
O lote a seguir não precisa de expansão atrasada devido à colocação do código em uma sub-rotina chamada, passando o número como um argumento.
:: Q:\Test18\SU_1325998.cmd
@Echo off
SET min=2
SET max=50
:0001
Set "ANSWER="
echo How many folders do you want? (enter below)
SET /P "ANSWER="
If not defined ANSWER Exit /B
IF %ANSWER% LSS %min% (Echo %ANSWER% is not enaugh min=%min%& GOTO :0001 )
IF %ANSWER% GTR %max% (Echo %ANSWER% is too much max=%max%& GOTO :0001 )
FOR /L %%F IN (1,1,%ANSWER%) DO Call :Sub %%F
Echo Done
Pause
Goto :Eof
:Sub
Set /A "N=100 + %1"
SET "batch=%~dp0..\batch\%N:~-2%"
IF NOT EXIST "%batch%" md "%batch%" >NUL
:: IMO RoboCopy is overkill here
COPY "%~dp0..\scripts\script.1s" "%batch%" >NUL
for %%A in (t.ini k.txt s.txt) Do if not exist "%batch%\%%A" Break>"%batch%\%%A"
> SU_1325998.cmd
How many folders do you want? (enter below)
1
1 is not enaugh min=2
How many folders do you want? (enter below)
99
99 is too much max=50
How many folders do you want? (enter below)
3
Done
Drücken Sie eine beliebige Taste . . .
> tree \ /F
├───batch
│ ├───01
│ │ k.txt
│ │ s.txt
│ │ script.1s
│ │ t.ini
│ │
│ ├───02
│ │ k.txt
│ │ s.txt
│ │ script.1s
│ │ t.ini
│ │
│ └───03
│ k.txt
│ s.txt
│ script.1s
│ t.ini
│
├───scripts
│ script.1s
│
└───test
SU_1325998.cmd