Несколько переменных для одной команды

0

Я новичок в cmd и мне было интересно, есть ли более простой способ получить переменную в команде. Например, мне нужно сделать две команды для набора из 96 файлов, и каждый раз, когда я нажимал клавишу со стрелкой вверх, возвращал свои старые команды и менял переменную с 1 на 2, затем с 2 на 3 и так далее.

то есть:

Рабочий стол \ InitialProcess_230 Process230input.fasta -output Process230.fasta

Затем каждый раз, когда я хочу сделать следующий файл, который будет InitialProcess_231 и т. Д., Я изменяю это в команде, прокручивая и удаляя 0 и помещая 1. Выполнение этого для почти 100 файлов кажется хлопотным.

Lowzenza
источник
2
Рассматривали ли вы написание командного файла вместо выполнения команд по одной?
Скотт Чемберлен

Ответы:

0

Сохраните командный файл с кодом ниже. Он будет выполнять вашу команду, начиная с 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 Desktop\InitialProcess_!num! Process!num!input.fasta -output Process!num!.fasta

Это не будет запускать команду, но вывести точно, как она выглядит. Это помогает с устранением неполадок. Надеюсь, это поможет, удачи!

Nate
источник
Я представляю, что вам придется изменить свой путь в команде, так что помните об этом.
конец