我是 cmd 新手,想知道是否有更简单的方法在命令中复制变量。例如,我必须对一组 96 个文件执行两个命令,每次我都会按向上箭头键,返回我的旧命令并将变量从 1 更改为 2,然后将 2 更改为 3,依此类推。
IE:
桌面\InitialProcess_230 Process230input.fasta -输出 Process230.fasta
然后,每次我想要执行下一个文件(即 InitialProcess_231 等)时,我都会在命令中通过滚动并删除 0 并放入 1 来更改它。对近 100 个文件执行此操作似乎很麻烦。
答案1
使用以下代码保存批处理文件。它将从 230 开始运行您的命令,一直运行到 330。
@echo off & setlocal EnableDelayedExpansion
set var=229
for /L %%A in (1,1,100) do (
set /a num=%%A+!var!
Desktop\InitialProcess_!num! Process!num!input.fasta -output Process!num!.fasta
)
echo Done
pause
for 循环具有参数 (1,1,100),这意味着它将从 1 开始,以 1 为步长,然后递增到 100。此数字 %%A 被添加到 !var!,我们将其设置为 229(结果为 !num! = 230, 231...)。如果要更改起始数字,请更改以下行:
set var=229
如果您的命令无法正常工作,请在实际命令前放置一个 echo,如下所示:
echo Desktop\InitialProcess_!num! Process!num!input.fasta -output Process!num!.fasta
这不会运行命令,但会打印出它看起来的样子。这有助于排除故障。希望这能有所帮助,祝你好运!