Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах

Автор: VelDmi
Дата сообщения: 13.04.2006 06:01
Serge2005
set tagfile=\WPI.ico
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist "%%i:%tagfile%" set CDROM=%%i:

у меня эта конструкция работает, причем с двумя cd проверял.
Автор: Serge2005
Дата сообщения: 13.04.2006 07:31
VelDmi
Спасибо большущее!!!!

Добавлено:
VelDmi
Черт....может это в моей системе глюк???
Он опять стал выдавать ошибку про сдром. Это произошло после того, как он один раз нашел на сдроме файл. Теперь, даже если сдром пустой, он пытается считать оттуда файл, не видит его там, и дылает окно: cmd.exe - Диск отсутствует
В устнойстве нет диска. Вставьте диск в устройство J:
Отмена Повторить Продолжить

Как это обойти(((( Или что я неверно делаю?
После перезагрузки опять все ок до первого нахождения файла на сдроме (вроде бы).
Автор: RaX
Дата сообщения: 13.04.2006 13:29
Помогите кто нибудь
Написал батник открывет в папочке все фалы с почтовыми сообщениями и из них собирает определенные данные. Проблемка в следущем, не могу данные с одного файла, записать в одну строку, в первом батнике значения не печатаються пока весь цикл for не кончиться, а во втором случае все нормально выводиться, но не в одну строку с одного файла.

Цитата:

@Echo off
set ret=Return-Path:
set rec=Received:
set tm=Date:
set rmail=
set receiv=
set getdate=

for %%f in (*.msg) do (FOR /f "usebackq tokens=1,2,3,4,5,6*" %%i in ("%%f") do @if %ret%==%%i (set rmail="%%j") else if %rec%==%%i (set receiv="%%j %%k %%l %%m %%n %%o") else if %tm%==%%i (set getdate="%%k %%l %%m %%n") | echo %rmail%    %receiv%    %getdate%)

echo %rmail%    %receiv%    %getdate%



Цитата:

@Echo off
set ret=Return-Path:
set rec=Received:
set tm=Date:
set rmail=
set receiv=
set getdate=

for %%f in (*.msg) do (FOR /f "usebackq tokens=1,2,3,4,5,6*" %%i in ("%%f") do @if %ret%==%%i (echo "%%j") else if %rec%==%%i (echo "%%j %%k %%l %%m %%n %%o") else if %tm%==%%i (echo "%%k %%l %%m %%n"))


Заранее всем благодарен!!!
Автор: 3xp0
Дата сообщения: 14.04.2006 00:54
Народ, кто понимает в написании batch jobs. Помогите составить задачку.
Я сам в это не бум-бум

Надо чтобы програмка зашла в определенную дерикторию на компе. Потом сделала поиск по всем файлам в той директории, включая поддиректории и нашла там 2 файла.
Потом для файла1 скажем, нашла там определенную часть строки, а заменила на что-то другое.
Потом в файле2 нашла другую часть строки и заменила опять кое на что.
И при каждом изменении файла вывело его полный путь и написало типа Successfuly Edited.
И потом в самом конце написано что-то типа:
Общее кол-во отредактированых файлов: 10

Помогите такое сделать. (Ось Windows Server 2003)
Премного буду благодарен.
Автор: vu1tur
Дата сообщения: 14.04.2006 09:31
3xp0

Цитата:
Потом сделала поиск по всем файлам в той директории, включая поддиректории и нашла там 2 файла.


Цитата:
Общее кол-во отредактированых файлов: 10

Таки забавно, да

А по какому критерию 2 файла ищутся? Опиши полностью задачу, тут и решим.


Автор: Lexua
Дата сообщения: 14.04.2006 10:43
VelDmi
Эта конструкция
Цитата:
set tagfile=\WPI.ico
for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z) do if exist "%%i:%tagfile%" set CDROM=%%i:
будет работать в голом ДОСе при условии, что в качестве коммандного прцессора используется 4DOS?
Автор: cluster
Дата сообщения: 14.04.2006 10:44
А можно с помощью ком-файла организовать подключение сетевых дисков?
Автор: RussianNeuroMancer
Дата сообщения: 14.04.2006 10:57
cluster
Цитата:
ком-файла
Наверно всё-же бат-файла.
Цитата:
организовать подключение сетевых дисков?
Так:
subst x: //server/share
Отключаем так: subst X: /d
Автор: cluster
Дата сообщения: 14.04.2006 11:03
RussianNeuroMancer

Цитата:
Наверно всё-же бат-файла.

Имелось в виду командного )

Цитата:
subst x: //server/share
Отключаем так: subst X: /d

Как бонально.. эту команду я знаю хорошо. Даже стыдно как-то. Пасиба

Добавлено:
только слешики обратные
Автор: Serge2005
Дата сообщения: 14.04.2006 13:47
А все-таки, нет ли какого-нибудь еще способа определить букву сд-рома, в котором есть диск с файлом, а если такого нет, то не выводить никаких ошибок?
Автор: KapralBel
Дата сообщения: 14.04.2006 14:01
Serge2005
Попробуй следующее
У меня команда Dir <disk>:\
Возвращает по %ErrorLevel%
0 - если есть диск
1 - если диска нет (не вставлен или буква не определена)
Автор: 3xp0
Дата сообщения: 14.04.2006 15:41
vu1tur

Цитата:
А по какому критерию 2 файла ищутся?

Да по названию файлов. Там будет 2-3 файла и их названия известны. И часть строки всегда постоянная, просто уникальная для каждого файла.
Автор: KapralBel
Дата сообщения: 14.04.2006 15:50
3xp0

Код:
@Echo Off
Set count=0
Set name=master.xml
For /R J:\ %%a In (*.*) Do Call :_Find %%~nxa "%%a"
Echo Общее кол-во отредактированых файлов: %count%
GoTo :EOF

:_Find
If /i %name% NEQ %1 GoTo :EOF
Rem Строки делающие замену
Echo Successfuly Edited: %2
Set /a count=%count%+1
GoTo :EOF
Автор: 3xp0
Дата сообщения: 14.04.2006 15:59
KapralBel
Спасибо за помощь. Т.к. в этом совсем не бум-бум.
1) Где указывать названия файлов? В которых будет замена?
2) Где указывать путь для тех 2-3 файлов в которых будет производиться замена?
3) Где указывать что именно будет заменено? И где указать на что будет заменено?
Заранее спасибо =)
Автор: KapralBel
Дата сообщения: 14.04.2006 16:04
3xp0

Цитата:
Где указывать названия файлов? В которых будет замена?

Set name=master.xml


Цитата:
Где указывать путь для тех 2-3 файлов в которых будет производиться замена?

For /R J:\ %%a In (*.*) Do Call :_Find %%~nxa "%%a"


Цитата:
Где указывать что именно будет заменено? И где указать на что будет заменено

с этим пока проблема, под рукой утилиты которая меняет - нет, а вот сегодня на .bat- написать не успею
Автор: scup
Дата сообщения: 14.04.2006 16:17

Цитата:
Где указывать что именно будет заменено? И где указать на что будет заменено?

3xp0 Я для этого использовал утилитку gsar - работает на ура из батника, http://gnuwin32.sourceforge.net/packages/gsar.htm тута лежит.

Добавлено:
http://forum.ru-board.com/topic.cgi?forum=5&topic=4582&start=120 поиск и замена в файле подробно расписаны.
Автор: 3xp0
Дата сообщения: 14.04.2006 16:55
scup
мне желательно без 3rd party tools.
Надо чтобы был простой батник.

KapralBel
будем ждать
Автор: scup
Дата сообщения: 14.04.2006 17:11
3xp0 Я дал ссылку http://forum.ru-board.com/topic.cgi?forum=5&topic=4582&start=120 там расписан вариант без сторонних утилит, пролистай ту страницу.
Автор: Allex_Van_Fogen
Дата сообщения: 14.04.2006 17:46
Пробегал тут батничек для организации задержки исполнения. Вот мой вариант (относительно точный, работает без всяких DelayedExpansion):


Код:
@echo off
set timer=5
echo start = %time%
call elay %timer%
echo stop = %time%
set timer=
goto :EOF

elay
set /a tdelay=%1
:Wait0
set tms=%time:~-2%
:Wait1
if not %time:~-2% == 00 goto Wait1
:Wait2
if not %time:~-2% == %tms% goto Wait2
set /a tdelay-=1
if not %tdelay% == 0 goto Wait0
set tdelay=
set tms=
goto :EOF
Автор: ARIES123
Дата сообщения: 14.04.2006 17:55
Привет...вот такая задачка..
Нуна на FTP ежедневна перекладывать файлы
Хотелось бы автоматизировать через бат-файл
Вобщем неудается автоматизировать потомушта в консольном клиенте постоянно просит логин и пароль.
Вопрос: Нежели никак нельзя ввойти автоматизовано?
Автор: 3xp0
Дата сообщения: 14.04.2006 18:29
scup
Если бы я что-то в этом понимал... я помощи прошу
Автор: hhr
Дата сообщения: 14.04.2006 20:25
помогите, плиз.
есть куча папок вида ####, где # - любая цифра.
в каждой такой папке лежит файл file.txt
в этом файле текстовая многострочная инфа (3-4 строки)
нужно взять эту инфу до первого знака _(_ (левая скобка), и обозвать директорию тем, что получилось, заменив пробелы, тире, двоеточия на подчеркивания.
вот.
Автор: slech
Дата сообщения: 16.04.2006 14:05
Всем привет.
Есть много папок.
Как каждую упаковать в архив при помощи winrar'a ?

Заранее спасибо.
Автор: Serge2005
Дата сообщения: 16.04.2006 20:23
KapralBel

Цитата:
Попробуй следующее
У меня команда Dir <disk>:\
Возвращает по %ErrorLevel%
0 - если есть диск
1 - если диска нет (не вставлен или буква не определена)

Что-то я торможу((( Подскажите, пожалуйста, как получить %ErrorLevel%
то есть как проверить, есть диск или нет...?
Автор: slech
Дата сообщения: 16.04.2006 20:34
Serge2005
eу меня есть диск D:\ и нету диска L:\
делаем так

Цитата:

dir D:\
echo %errorlevel%
0

dir L:\
echo %errorlevel%
1
Автор: cluster
Дата сообщения: 16.04.2006 22:43
Реально с помощью командного файла создвать\удалять папки в заданное время?
Автор: KapralBel
Дата сообщения: 17.04.2006 08:49
cluster
Реально...
Проверяешь время если устраивает - делаешь заданные действия, если не устраивает - перешодишь на начало цикла и снова проверяешь время....
Но проще использовать какой-либо планировщик (хотя бы встроенный)
Автор: Allex_Van_Fogen
Дата сообщения: 17.04.2006 09:00

Цитата:
Невозможности — что нельзя сделать с помощью командных файлов:


Заменить в текстовом файле все символы "!" на "^!" - похоже нереально решить средствами командных файлов...
Автор: cluster
Дата сообщения: 17.04.2006 09:06
KapralBel
Надо сделать, чтобы создавался каталог в формате dd.mm.yy (дата запуска командного файла), а пустые каталоги (например, вчерашний) удалялись
Автор: slech
Дата сообщения: 17.04.2006 11:07
Всем привет.
Есть много папок.
Как каждую упаковать в архив при помощи winrar'a ?
И что бы имя архива = имя папки
Заранее спасибо.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


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