Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» счётчик (увеличение переменной) в командном файле (bat, cmd)

Автор: Unregistered_user
Дата сообщения: 20.02.2005 18:27
вот кусочек батничка:

cd C:\Program Files\work_dir\
set count=001
set ext=.rar
:_prodolshenie
... набор комманд...
IF EXIST somename%count%%ext% GOTO _prodolshenie
rem if it not found - work finished
pause

нужно неким образом увеличить переменную count , только вот как?
я использую эту переменную чтобы избежать задания большого количества данных..
там файлы по маске file001.rar file002.rar и так далее

нужен видимо оператор вроде increase или add но в языке bat-ничков его нету.. =(
Автор: MRMORGAN
Дата сообщения: 20.02.2005 19:20
count=count+1 - так не получится ?
Автор: Unregistered_user
Дата сообщения: 20.02.2005 19:34
думал об этом он гад воспринимает 1 не как цифры а как буквы. Вот незадача
делал приблизительно это
set count=%count%+1
Автор: igor_andreev
Дата сообщения: 21.02.2005 09:59

Код:
@echo off
cd /d C:\Program Files\work_dir\

set /a count=1
set ext=.rar

for %%a in (*%ext%) do call :isfile somename00%%count%%%ext%
goto :eof

:isfile
if exist %~1 (
echo %~nx1 exist
: ... набор твоих команд...
call :exec set /a count+=1
) else (
echo %~nx1 not found - work finished
pause & exit
)
goto :eof

:exec
%*
goto :eof

:eof
Автор: Unregistered_user
Дата сообщения: 21.02.2005 19:15
интересно. а %~nx1 и %~1 откуда взялись? ух видно придется углубиться в дебри документации.. не там читал видно.. щас попробую что нибудь поколдовать
ps. у меня тоже xp

Добавлено:
а кажется нашел в хелпе по фор
Автор: igor_andreev
Дата сообщения: 22.02.2005 00:15

Цитата:
интересно. а %~nx1 и %~1 откуда взялись?

Для каждого rar-архива в цикле for вызывается метка батника :isfile и ей в качестве параметра передается имя файла, call :isfile somename00%%count%%%ext%
Для :isfile очередной somename00X.rar и является %1(переданным аргументом)
Если файл существует, счетчик увеличивается на 1 и опять проверяется наличие файла, если файла нет - выход.
Автор: Unregistered_user
Дата сообщения: 23.02.2005 13:00
cпасибо решил проблему правда несколько иным способом!

Страницы: 1

Предыдущая тема: DNS-сервер обнаружил пакет, адресованный самому себе


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.