dre*_*eab 4 for-loop batch-file range
我希望创建一个嵌套的for循环来处理一些文件.我已经广泛寻找解决方案,并找到了许多相似的版本,但由于这是我第一次将方法组合起来做我想做的事情.
基本上 - 我想要一个FOR/L循环,循环遍历一系列从001到500的填充数字.
我知道我可以指定一个范围(1,1,500),但显然不是(001,001,500).如何添加00,然后当%% a> 9时,只是0?我想这可能是一种刺痛,但也许还有另一种方式?
我希望它的代码(显然是错误的):
@echo off
for %%a in (001,001,500) do (
echo %%a
for %%s in (control scenario) do (
echo %%s
svic_ensemble.exe 28009_Trent_at_Colwick.cal Trent_%%s_%%a.txt 28009_Trent_at_Colwick.txt Trent_%%s_%%a.out
)
)
pause
Run Code Online (Sandbox Code Playgroud)
非常感谢
埃德
jeb*_*jeb 12
你可以用字符串操作来解决它.
首先在数字前加两个零,然后只取最后三个字符.
setlocal EnableDelayedExpansion
for /L %%n in (1 1 500) do (
set "num=00%%n"
set "num=!num:~-3!"
echo !num!
)
Run Code Online (Sandbox Code Playgroud)
获得零填充的最简单方法是使用大量零填充,然后使用子字符串:
set Number=1
set PaddedNumber=000000%Number%
set PaddedNumber=%PaddedNumber:~-3%
Run Code Online (Sandbox Code Playgroud)
你可以调整它以便在循环中使用,尽管你需要延迟扩展:
setlocal enabledelayedexpansion
for /l %%a in (1, 1, 500) do (
set num=000%%a
set num=!num:~-3!
for %%s in (control scenario) do (
svic_ensemble.exe 28009_Trent_at_Colwick.cal Trent_%%s_!num!.txt 28009_Trent_at_Colwick.txt Trent_%%s_!num!.out
)
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13584 次 |
最近记录: |