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

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

Автор: Rost admin
Дата сообщения: 10.03.2006 13:55
KapralBel
Нужно bat файлом
Автор: KapralBel
Дата сообщения: 10.03.2006 14:08
Rost admin
А смысл какой расписывать в .бат файле
* найти файл
* найти его дату
* сравнить дату
* скопировать

Robocopy - идеальное решение для данного случая
Вставляешь в батник вызов этой утилиты с параметрами - и все ОК (сама обрабатывает ошибки)
Автор: MonsterMax
Дата сообщения: 10.03.2006 14:16
А не проще xcopy ?
Автор: KapralBel
Дата сообщения: 10.03.2006 14:20
MonsterMax
xcopy - не настолько мощная
Автор: MonsterMax
Дата сообщения: 10.03.2006 14:27
Ну батником нарисовать поиск нужных файлов, а xcopy сама вроде умеет файлы с более свежей датой распознавать
Автор: KapralBel
Дата сообщения: 10.03.2006 14:32
MonsterMax
Ну тогда и обычную copy можно использовать
Скопируется в любом случае
* если в зеркале был более старый файл - то станет новый, как и требовалось
* если же аналогичный - то скопируется по верху - ничего страшного
Автор: MonsterMax
Дата сообщения: 10.03.2006 14:40
/D:m-d-y Копирует файлы, измененные либо в указанный день, либо после.
Если дата не указана, копируются только те файлы,
которые новее в исходной папке.
Автор: Rost admin
Дата сообщения: 10.03.2006 14:57
KapralBel
Так не пойдет т.к. лишний трафик не к чему
Автор: KapralBel
Дата сообщения: 10.03.2006 15:14
Rost admin
Тогда пользуйся решением MonsterMax или используй Robocopy
Автор: nightlight
Дата сообщения: 10.03.2006 22:04
jak_forest

Цитата:
А если...

Если надо не "в принципе" а просто работать, то ИМХО проще всего сделать так:
Положим имеется файл task.cmd.
Переименовываем его в old_task.cmd.
Пишем другой, из одной строчки:

old_task.cmd >> 1% 2>&1

Называем его task.cmd, и используем в виде:
task.cmd stdout_and_error_file

Vitus_Bering

Цитата:
Как установить - понятно, а как узнать установлен ли определенный шрифт?


Напрмер вот так:
@echo off
reg query "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\fonts\" /v | findstr /c:"Courier New Bold Italic"
IF NOT ERRORLEVEL 1 ECHO FONT IS INSTALL!





Добавлено:
Rost admin
В cmd или bat файлах нормальная работа с датами черезвычайно затруднена, это общеизвестная истина...
Поэтому Ваш выбор или утилиты или Windows Script Host.
Автор: Vitus_Bering
Дата сообщения: 11.03.2006 14:14
nightlight, благодарю.
Автор: xs
Дата сообщения: 11.03.2006 14:35
Помогите плиз.
Хочу написать бат-файл, который бы с определённой периодичностью пинговал один хост, и в случае отсутствия ответа подключался телнетом к адсл-маршрутизатору и выполнял некоторые команды.
Я пытался примерно так:

echo off
ns
ping 195.54.2.1
if not errorlevel 0 goto end else goto reset / но даже при наличии ответа эта строка переводит почему-то к пункту «reset»

:reset
telnet 192.168.1.1 / здесь долго мучился и ничего путного не получилось
нужно сделать, чтобы отправлялся пароль на доступ в маршрутизатор
в телнете нужно выбрать пункт 24 (то есть <24 Enter>)
далее пункт 8 (то есть <8 Enter>)
затем открывается командная строка, где нужно набрать команду reset
выйти из телнета
goto end

:end
timeout 180 / не воспринимает как команду
goto dns

хотя может такое и не возможно
Автор: nightlight
Дата сообщения: 11.03.2006 19:47
xs
В Вашем случае выражение ( IF NOT ERRORLEVEL 0) истинно ложно всегда.

Цитата:
IF ERRORLEVEL число
Условие выполняется, если предыдущая команда, обработанная интерпретатором команд Cmd.exe, завершилась с кодом, равным или большим числа .



Для организации задержки выполнения можно использовать либо утилиту sleep.exe из Windows 2000 or Windows XP Resource Kit, либо написать скрипт для Windows Script Host. Написать скрипт и выполнить его можно прямо из CMD файла :

ECHO WScript.sleep(5000); > %temp%\sleep.js
cscript %temp%\sleep.js
IF EXIST %temp%\sleep.js DEL /Q %temp%\sleep.js

Время задержки указывается в милисекундах.

Один из вариантов как автоматизировать работу с telnet см. здесь
http://www.expansys.com.au/forumthread.asp?code=110551&thread=502
Автор: xs
Дата сообщения: 11.03.2006 20:18
большое спасибо...попробую...
Автор: zuzleg
Дата сообщения: 13.03.2006 12:02
Не знаю спрашивалось уже или нет, но нельзя ли с помощью ком. строки создать ярлык к нужному файлу ?

И еще вопросик... Можно ли создать исполняемый пакет, чтобы он проверял нужную нам папку на наличие определенного файла, и, если этот файл не обнаружен, то запускать нужное нам приложение (ярлык) ? Соответственно, если этот файл будет найден, то запрещать запуск этого приложения.
Автор: nightlight
Дата сообщения: 13.03.2006 23:19
zuzleg

Цитата:
Не знаю спрашивалось уже или нет, но нельзя ли с помощью ком. строки создать ярлык к нужному файлу ?

Скрыпт на VBS:
http://www.wincity.ru/index.php?showtopic=11858



Добавлено:

Цитата:
Можно ли создать исполняемый пакет, чтобы он проверял нужную нам папку на наличие определенного файла,

Так и называется оно:
IF EXIST file.txt

Подробности см.: IF /?

Разрешить/запретить исполнение файла можно например просто переименовывая его из file.exe в file.txt и обратно
Автор: igaraev
Дата сообщения: 14.03.2006 09:20
Как можно в цикле FOR задать параметр Delims равный какому то значению и пробелу.

Автор: KapralBel
Дата сообщения: 14.03.2006 09:47
igaraev
For /F "tokens=1-6 delims= " %%a In (ReadMe.txt) Do Echo %%a
Если пробел, то delims пусть стоит последним и между = и кавычкой пробел
Автор: igaraev
Дата сообщения: 14.03.2006 09:58

Такой еще вопрос назрел как в BAT файле узнать содержимое RAR архива.
И в зависимости от того что внутри выполять те или другие функции.
Автор: KapralBel
Дата сообщения: 14.03.2006 10:10
igaraev
rar L Archive >ListOfFile.txt
а дальше разборка списка при помощи FOR
Автор: Milto
Дата сообщения: 15.03.2006 10:40
Видимо плохо ищу или думаю.....
W2003, 2000, XP
Раз в сутки запускаю процедуру копирования(смещения) файлов по правилу "семи гвоздей". т.е. остается семь вариантов состояния файлов.
Только запускать эту процедуру необходимио если:
файлы sours и old_1 различаются по размеру (можно по дате модификации)
или нет файла old_1

Эти команды надо выполнить, если выполнено условие различия

@del old_7
@ren old_6 old_7
@ren old_5 old_6
@ren old_4 old_5
@ren old_3 old_4
@ren old_2 old_3
@ren old_1 old_2.mdb
@copy sours old_1
Выход, если условие не выполнено.

Помогите пожалуйста с условием.
Автор: igaraev
Дата сообщения: 16.03.2006 05:07
есть одна прога NNbackup называется сделает все в лучшем виде.
И заморочек меньше. Параметры с командной строки задаются. Сайт NNCRON.RU
Автор: Milto
Дата сообщения: 16.03.2006 07:59
igaraev, спасибо за совет, но я стараюсь привлекать как можно меньше сторонних программ. При востановлении сервера могут быть проблеммы-

Автор: KapralBel
Дата сообщения: 16.03.2006 10:31
Milto
Но не в этом случае, продукция nnCron - относится к разряду MastHave

Код:
@Echo Off
FC sourc Old_1
GoTo :_L%ErrorLevel%

:_L0
Rem Файлы одинаковы по содержимому(что еще лучше для проверки)
GoTo :EOF

:_L1
:_L2
Rem Файлы различны (1) или одного из них не существует (2)
GoTo :EOF
Автор: BergA
Дата сообщения: 16.03.2006 17:00
Уважаемые знатоки!
Есть проблема с логин скриптом.
Машины win98.
Как определить членство в группах. ifmember валится с ошибкой OpenProcessToken failed Error 120.
Автор: faZZ
Дата сообщения: 18.03.2006 08:08
Есть сеть, в которой доступ в инет сделан через VPN соединение. Соответственно при каждой перезагрузке необходимо производить полключение вручную. сделал батник

Код: echo off
cls
echo Connecting ...
rasdial internet login password
Автор: nightlight
Дата сообщения: 19.03.2006 04:03
Например так:
echo off
cls
echo Connecting ...
rasdial internet login password > %temp%\rasdialmsg.txt
if errorlevel 1 cmd /k type %temp%\rasdialmsg.txt


Если служба сообщений не отключена то можно так:

rasdial internet login password
if errorlevel 1 net send %computername% RASDIAL ERROR %ERRORLEVEL%




Добавлено:
BergA
http://groups.google.com/group/microsoft.public.win2000.setup_deployment/browse_thread/thread/80601902f7335cbf/41445d2072a8ce8b?lnk=st&q=OpenProcessToken+failed+Error+120&rnum=4&hl=ru#41445d2072a8ce8b
Автор: faZZ
Дата сообщения: 19.03.2006 05:28
nightlight
ок. завтра попробую.
Автор: HODOK
Дата сообщения: 20.03.2006 05:04
Люди-программисты не откажите в помощи
мне тут таку прогу надо сделать а я в shell 2 дня и без информации толком

Создать командный файл, который позволяет по требованию пользователя:
1) распаковать архив формата arj в указанный каталог;
2) распаковать архив формата zip в указанный каталог;
3) если не указаны параметры командного файла, выводит подсказку.
Описать назначение команды tree, сравнить возможности этой команды в ОС WINDOWS XP и WINDOWS 9X.

я разобрался как разархивировать....я вставил внешнии команды arj.exe и rar.exe в
command
и
ARJ e <имя архива> *.*
но я не могу
1) найти внешние команды для zip
2)как объявить переменную так что бы инфа туда с клавы загонялась тк мне по запросу надо
3)как проверить отсутствие значений у параметров бата
я делал так
for %%a in (%1,%9) do

но мне нужно проверить пусты ли они как мне впехнуть оператор if в for

HELP!!!!!!!!!!!!!!


Автор: KapralBel
Дата сообщения: 20.03.2006 08:59
HODOK
2. Какой ZIP ты используешь? есть много разных версий с разными параметрами командной строки)

Лучше всего используй для распаковки WinRAR (он понимает все эти форматы)
WinRAR x Archive.ZIP(ARJ) Folder\



Код:
@Echo Off
If "%1"=="" GoTo :Help
Rem RRRRRRRRRRRRR
GoTo :EOF

:Help
Echo HELP
GoTo :EOF

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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