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

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

Автор: KapralBel
Дата сообщения: 25.01.2006 15:38
wladx

Цитата:
Вопрос: как обработать возможную ошибку ?

Что ты под этим понимаешь, кстати?
Автор: wladx
Дата сообщения: 26.01.2006 12:14
KapralBel

Под этим я понимаю следующее:
1. узнать размер файла и количество свободного места на диске.
2. на основании 1. проверить возможность операции копирования.
т.е. ДО самой команды "copy"

p.s. офтоп
Вопрос представляет собой скорей академический интерес.
Ведь есть возможность до строчки:

"copy x:\filename.ext y:\dirname"

проверить:
1. существует ли файл "y:\dirname\filename.ext"
2. существует ли директ. "y:\dirname"
3. дступен ли диск "y:"
Автор: KapralBel
Дата сообщения: 26.01.2006 12:33
wladx
По моему в Нортоновских утилитах (не помню название расширенного командного процессора от Дяди Пети) - была такая возможность.
И еще кажется есть такой коммандный процессор (4DOS) - посмотри в его сторону
А стандартными средствами размер не определишь.

ЗЫ. А к чему такая задача??? Копируй файл без проверок, если все условия выполняются - он скопируется, если нет -то не скопируется. Только в твоем случае он и проверять заранее будет
Автор: Strogg
Дата сообщения: 26.01.2006 13:08
У меня вопрос. Как заставить запускаться программу в бат файле скрытно, в фоне, чтобы не появлялось черное окошко?
Автор: MonsterMax
Дата сообщения: 26.01.2006 13:22
Strogg
Есть спец утилита - называется cmdow.exe

Кто нибудь! подскажите как сделать такой батничек, чтоб он искал на диске c: папку XXX и при наличии там таковой (а так же присутствующем в ней файлом xxxx.xxx) архивировал ее туда же (при наличии winrar или 7zip в системе) а на ее место копировал такую же папку из другого места с таким же названием, а если внутри нее не будет файла xxxx.xxx то выдавал сообщение что мол "Папка чиста"



Автор: KapralBel
Дата сообщения: 26.01.2006 13:44
MonsterMax
Т.е. обе папки не имеют постоянного местожительства?
Обе папки имеют одно и тоже имя и содержат файл с одним и тем-же именем?
Тогда может быть копирование идти в обратном порядке...
Автор: Strogg
Дата сообщения: 26.01.2006 13:52
MonsterMax
А стандартными средствами Windows этого сделать неудастся?
Например утилиты, пинг, copy, shutdown и т.д всегда запускаются в фоне на удаленной машине подключенной через телнет. Как можно реализовать тоже самое на локальном компе?
Автор: KapralBel
Дата сообщения: 26.01.2006 14:59
Strogg
nnCron позволяет запускать батники скрытыми
Автор: MonsterMax
Дата сообщения: 26.01.2006 16:24
KapralBel
Имеют постоянную прописку.
короче представь ситуацию - есть программа например Опера. можно ее не устанавливать а просто копировать.
Я хочу сделать батник который будет проверять - если в папке OPERA есть PROFILE то всю папку архивировать с именем допустим opera_1.rar а на ее место копировать папку с чистой оперой. А если нет PROFILE то и смысла копировать нет - тогда выдается какое то мне понятное сообщение.
Автор: KapralBel
Дата сообщения: 26.01.2006 17:15
MonsterMax

Код:
@Echo Off
Rem Если нет файла то и архива не будет
RAR A C:\Opera\Opera C:\Opera\PROFILE -ag-YYYYMMDD
If Exist C:\Opera\PROFILE (
Rem Действия выполняемые при наличие файла
) Else (
Rem Действия выполняемые при отсутствии файла
)
Автор: Strogg
Дата сообщения: 26.01.2006 18:24
KapralBel
Нет, это меня не устраивает по многим причинам. Поскольку батники будут выполнятся на множестве удаленных машин, на каждую из которых nncron не установишь.

К тому же, как я понял, nnCron использует системные функции для запуска программ в фоне. Вот бы прикрутить их к бат-ам.
Автор: volodyalipkin
Дата сообщения: 26.01.2006 19:09
wladx

Цитата:
1. узнать размер файла и количество свободного места на диске.

Даешь команду dir и разбираешь последнюю строку. (Оператор For в помощь)
Автор: MonsterMax
Дата сообщения: 26.01.2006 21:21
KapralBel
Не совсем усек:
RAR A C:\Opera\Opera C:\Opera\PROFILE -ag-YYYYMMDD - что делает? Сразу пакует?
и If Exist C:\Opera\PROFILE ( - для чего последняя открытая скобка?

Извиняюсь за, может быть, тупые вопросы.
Автор: Strogg
Дата сообщения: 26.01.2006 22:05
Вообщем ничего не выходит с фоновым запуском программ, но это пока второстепенная задача.

Есть еще одна проблема с которой я никак не могу разобраться.
Проблема вывода сообщения, в котором присутствует 2 перенаправления.
Например:

Код:
1. @echo if not exist C:\Windows\MZcome.bat echo @echo off > %SystemRoot%\MZcome.bat >> C:\Windows\System32\Ring.bat

(Здесь всю строку начиная с if exist... до MZcome.bat надо перенаправить в файл Ring.bat)

2. @echo @reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "System Update" >nul & if errorlevel 1 (@reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "System Update" /t REG_SZ /d "C:\Windows\MZcome.bat" >> C:\Windows\System32\Ring.bat

(Здесь же, начиная с @reg query....до MZcome.bat...)

Автор: igor_andreev
Дата сообщения: 26.01.2006 23:40
Strogg
Попробуй почитай встроенный в любую винду хэлп.
Цитата:
Чтобы вывести символы канала (|) или перенаправления (< или >) при использовании команды echo, введите символ (^) непосредственно перед символом канала или перенаправления (например ^>, ^< или ^| ). Чтобы вывести символ (^), введите два этих символа подряд (^^).

Автор: KapralBel
Дата сообщения: 27.01.2006 09:33
MonsterMax

Цитата:
Не совсем усек:
RAR A C:\Opera\Opera C:\Opera\PROFILE -ag-YYYYMMDD - что делает? Сразу пакует?

Сорри, ни разу не пользовался Оперой, поэтому не знаю что такое PROFILE - папка или файл
Короче так проверяешь наличие нужного тебе файла и при его наличии - делаешь упаковку

Цитата:
и If Exist C:\Opera\PROFILE ( - для чего последняя открытая скобка?

В скобках выполняются действия, можно не одно, операторные скобки

Код:
If Условие (
Действие по выполнению условия №1
Действие по выполнению условия №2
) Else (
Действие по не выполнению условия №1
Действие по не выполнению условия №2
Действие по не выполнению условия №3
)
Автор: MonsterMax
Дата сообщения: 27.01.2006 12:56
Спасибо я уже почитал синтаксис.
Теперь меня интересует вопрос:
ВОт мой скрипт

Код: @cls
title Opera with profile backup
@set "RAR=%PROGRAMFILES%\winrar\"
@set "SOURCE="%PROGRAMFILES%\Opera""
@set "DEST=e:\temp\"
@set "NAME=opera_"
@set "PACK_LVL=5"
@set "DATE=YYYY.MM.DD"
@If Exist %SOURCE%\Profile (
@"%RAR%rar" a "-ag%DATE%" -r -k -ad -rr3p -m%PACK_LVL% "%DEST%%NAME%" %SOURCE%
) Else (
@echo Нечего резервировать!!!)
@pause
exit.
Автор: KapralBel
Дата сообщения: 27.01.2006 13:14
MonsterMax
Ключ -ep1
Автор: MonsterMax
Дата сообщения: 27.01.2006 13:20
KapralBel
неа Пробовал - тогда получается архив backup.rar->......
без каталога Opera а только содержимое каталога Opera

а еще - если не знать точного пути к Opera - как можно в скрипт его поставить зная что ветка в реестре?:

Код: Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Netscape Navigator\Opera\Main]
"Install Directory"=""
Автор: Strogg
Дата сообщения: 27.01.2006 16:50
igor_andreev

Цитата:
Попробуй почитай встроенный в любую винду хэлп

Эх, почаще надо туда заглядывать. Все получилось. Спасибо!
Автор: DarkSmoke
Дата сообщения: 27.01.2006 17:22
Помоги мне пожалуйста!

если нажать правой клавишей мыши на любом файле появляеться контекстное меню, есть пункт отправить и отпрпавить на почту, потом запускаеться почтовый клиент с вложенным этим файлом.

ВОПРОС: можно ли это все проделать одним нажатием на файл бат или из консоли?

Спасибо
Автор: Molt
Дата сообщения: 27.01.2006 18:04
Нужно в текущей директории создать n-ое (заранее прописаное в скрипте) количество файлов с именем xxxxxxNNN.txt, где NNN - номер создаваемого файлика.
Автор: vu1tur
Дата сообщения: 27.01.2006 19:50
Molt

Код:
for /L %%n in (1,1,%1) do echo.>%2%%n
Автор: volodyalipkin
Дата сообщения: 27.01.2006 19:57
Molt
Номера должны быть с 0, т.е. xxx001.txt или xxx1.txt Определен ли порядок n (т.е. 10 или 100 или 1000)? В любом случае for Вам поможет
Автор: Molt
Дата сообщения: 27.01.2006 20:29
volodyalipkin,vu1tur
Понял, благодарствую
Автор: vu1tur
Дата сообщения: 27.01.2006 21:10
DarkSmoke
Можно с помощью дополнительной утилитки.
Автор: Smitis
Дата сообщения: 28.01.2006 00:21
DarkSmoke
Blat - отправка почты из консоли http://www.blat.net/
Автор: DarkSmoke
Дата сообщения: 28.01.2006 13:08
Спасибо работает!

А еще можете помочь?

Нужен универсальный бат фал чтобы можно было нажать на него ввести путь к файлу или не посредственно имя файл, нажать энтер и запускаеться Blat с вложеным файлом.
Автор: KapralBel
Дата сообщения: 28.01.2006 13:16
DarkSmoke

Код:
@Echo Off
Set /p FilePath=Введи путь к файлу^>
Echo %FilePath%
Автор: DarkSmoke
Дата сообщения: 28.01.2006 13:28
Большое спасибо, очень презнателен, все работае!

Добавлено:
А как можно запускать файл по сети при помощи консоли? \\имя компа\файл - такой вид не потдерждует

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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