Windows пакетный файл l oop для многократной печати файла - PullRequest
1 голос
/ 12 июля 2020

Я распечатываю .prn файл с cmd с помощью команды

COPY test.PRN \\Desktop\Xerox_WorkCentre_5024

Это отлично работает.

Если я буду sh напечатать один и тот же файл дважды, я использую эта команда:

COPY test.PRN \\Desktop\Xerox_WorkCentre_5024
timeout 300 /NOBREAK**
COPY test.PRN \\Desktop\Xerox_WorkCentre_5024

Это также отлично работает, печатая один и тот же файл дважды после задержки в 300 секунд.

Теперь в пакетном файле, как для L oop I следует использовать, если я хочу напечатать один и тот же файл 25 раз с одинаковым интервалом задержки между ними?

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

Я полагаю, всегда есть много способов снять шкуру с кошки.

с использованием for /L l oop в пакетном файле. (Обратите внимание: если вы хотите использовать эту же строку из cmd, вам нужно использовать %a вместо %%a

@for /l %%a in (1,1,25) do @copy test.PRN \\Desktop\Xerox_WorkCentre_5024 & timeout /t 300 /nobreak>nul 2>&1

или просто установить переменную и отсчитать до единицы.

@echo off & set timer=25
:timer
if not %timer% equ 0 (
    set /a timer-=1
    copy test.PRN \\Desktop\Xerox_WorkCentre_5024
    timeout /t 300 /nobreak>nul 2>&1
    goto :timer
)
0 голосов
/ 12 июля 2020

Используйте FOR /L

In FOR /?

FOR /L %variable IN (start,step,end) DO command [command-parameters]

    The set is a sequence of numbers from start to end, by step amount.
    So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would
    generate the sequence (5 4 3 2 1)

Если вы хотите сделать

COPY test.PRN \\Desktop\Xerox_WorkCentre_5024
timeout 300 /NOBREAK

25 раз, в пакетном файле вы можете сделать это:

@echo off
FOR /L %%I in (1,1,25) do (
  COPY test.PRN \\Desktop\Xerox_WorkCentre_5024
  timeout 300 /NOBREAK
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...