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

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

Автор: PuzzleW
Дата сообщения: 29.01.2008 22:48
SymA
for /? тебе в помощь
skip=2 тебе точно понадобиться

А у тебя кучка доменов и в каждом кучка компьютеров? и тебе нужно список шар по каждому из компьютеров?
Это однократная или повторяемая задача?
Автор: Grim_Repo
Дата сообщения: 30.01.2008 00:32
Здравствуйте, вообщем, задача такова - нужна команда которая экспортирует ветки реестра HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE в C:\Temp.


Заранее, огромное спасибо!
Автор: 01MDM
Дата сообщения: 30.01.2008 00:38
Grim_Repo

Код:
reg export hkcu C:\Temp\hkcu.reg
reg export hklm C:\Temp\hklm.reg
Автор: SymA
Дата сообщения: 30.01.2008 02:04

Цитата:
А у тебя кучка доменов и в каждом кучка компьютеров? и тебе нужно список шар по каждому из компьютеров?

В кучке доменов кучки компьютеров и список необходим по каждому . . .


Цитата:
Это однократная или повторяемая задача?


Повторяемая

Автор: Dekabryi
Дата сообщения: 30.01.2008 04:32
701
И в итоге что у тебя произошло после написания бата ?!
Ты его поставил в загрузку ?!
ТО есть тема закрыта или как ?
Автор: Amaroid
Дата сообщения: 30.01.2008 04:55

Цитата:
И в итоге что у тебя произошло после написания бата ?!
Ты его поставил в загрузку ?!


Нее не ставил ,я даже не уверен ,что правильно написал его.
Чесно говоря не знаю и как его в загрузку воткнуть (RunOnce) ,его что нужно в экзэшник перекомпилировать ?
Если чё сразу извиняюсь за бред
Автор: Dekabryi
Дата сообщения: 30.01.2008 05:26
Amaroid
Значет так !
весь текст вставляешь в блокнот и затем сохраняешь в run.bat ( для примера )
а дальше хоть как хоть через реестр добавить загрузку оного или просто в автозагрузку положишь, значения не имеет.
Автор: 701
Дата сообщения: 30.01.2008 05:32
Понял ща буду пробовать .
Автор: GORA2
Дата сообщения: 30.01.2008 07:47
Встретился с такой конструкцией:

Код: Copy /y %2 "%~dp1" >nul >nul >nul
Автор: king_stiven
Дата сообщения: 30.01.2008 09:04
GORA2
А ты попробуй на практике чё нить скопировать с различными количествами nul, когда
1 нет файлов для копирования
2 есть файлы
3 диск переполнен
4 диск защищён
5 не существует папок и т д
потом доложись, самому интересно
Автор: noiseless
Дата сообщения: 30.01.2008 09:14
Приветствую вас, уважаемые!

Прошу помощи или хотя бы ткните носом откуда копать

Есть такая программка "Спринтер" компании Такском. Компания ежеквартально выпускает обновления в виде самораспаковывающихся RAR-архивов с именем FC*.exe. Это обновление нужно поместить в папку с программой и запустить. Но таких папок у меня более 10 шт. и ручками очень долго это делать.
Пока нашел вот такое решение:
Создал два bat-файла.

Первый (Taxcom_u.bat):
@echo off
cls
echo Запуск обновления: %date% в%time% > update.log
cd C:\#setup
set arch=upd.rar
set exes=upd.exe
set dats=%random%
del /Q *.bak
del /Q %arch%
ren *.rar *.bak
if not exist Update\nul md Update
copy FC*.exe Update\
ren FC*.exe %exes%
rar s- %exes%
cls
echo Подготовка архива. Ждите...
echo.
rem del /Q FC*.exe
del /Q %exes%
echo ----------------------------------------------
echo Архив подготовлен
echo ----------------------------------------------
echo.
rem pause
rem Задержка в 5 сек.
echo Обновление начнется через 5 сек. Ждите...
ping -n 5 localhost > nul
cls
for /F %%i in (dipost.txt) do 02.bat %%i

Второй (02.bat):

@echo off
echo Идет обновление папки %1. Ждите...
rar x -o+ -ilogagg.log %arch% %1 >> update.log

В процессе выполнения создается лог-файл update.log, в который попадает инфа о процессе обновления. Иногда в процессе обновления какие-то файлы заняты (бухгалтер запустил программу), и хотелось бы видеть это в лог-файле, т.е. типа "Обновление папки *** не прошло!!!"

PS: в файле dipost.txt находится список директорий для обновления вида:
C:\Dipost.001
C:\Dipost.002
...
C:\Dipost.012
Автор: Dekabryi
Дата сообщения: 30.01.2008 09:23
noiseless
попробуй распаковывать самим winrar с параметром -ilogc:\log\backup.log ( к примеру )


Цитата:
rar x -o+ -ilogagg.log %arch% %1 >> update.log
(поменяй тут)
Автор: 701
Дата сообщения: 30.01.2008 09:30
Dekabryi

Не срабатывает.т.е даже при запуске с рабочего стола переключения не происходит
значит пока рано его в автозагрузку закидывать.
Пробовал 2 варианта записи -

REG ADD"HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"/v ListviewShadow /t reg_dword /d 0
и без кавычек.

Выходит ,что батник параметр не переключает - мож чё не так записано?

Автор: LDAP
Дата сообщения: 30.01.2008 09:39
king_stiven
Спасибо. Классный вариант.
Только вот я не пойму назначение

Код:
set proverka=yes
if not defined proverka Echo Файлы для копирования не найдены >> log.txt
set proverka=
Автор: king_stiven
Дата сообщения: 30.01.2008 10:00
LDAP
Там ведь у тебя два раза идут циклы с xcopy, поэтому мы эту переменную отменяем дабы избежать ошибок. Если уверен, что больше проверка на эту переменную не понадобится, можешь убрать строчку.
Автор: noiseless
Дата сообщения: 30.01.2008 10:04
Dekabryi
Спасибо! Но хотелось бы всё иметь в одном файлике update.log. Как быть в таком случае?

Добавлено:
Этот вопрос решил путем такой строчки:

rar x -o+ -ilogupdate.log %arch% %1

Но теперь возникает вопрос про кодировки: батник в кодировке ДОС, а данная строчка добавляет кодировку ВИНДЫ. Как привести всё к одному?
Автор: Dekabryi
Дата сообщения: 30.01.2008 10:15
701

REG ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v ListviewShadow /t reg_dword /d 0 /f
вот так отработало !

Добавлено:
noiseless

не совсем понял ! один файл логов ты хочешь получить от 2х батов ?
Если так то что тебе мешает направить все выгрузки в один файл ?
Разделяя строками с датой начала записи и именованием кто начинает писать в лог!
А для удобства добавь еще чтоб логи отправлялись по мылу !
Автор: noiseless
Дата сообщения: 30.01.2008 11:02

Цитата:
не совсем понял ! один файл логов ты хочешь получить от 2х батов ?

Да, но это вроде как получилось (см. мой предыдущий пост


Цитата:
Разделяя строками с датой начала записи и именованием кто начинает писать в лог!

Это в принципе тоже не обязательно, т.к. при ошибках в лог пишется время ошибок, а в начале лога я пишу когда началось обновление.
Вопрос про кодировку остался только
Автор: 701
Дата сообщения: 30.01.2008 11:10
Dekabryi

Огроменное спасибо всё арбайтен !!!
С меня ведро пельменей

прочитал про /f в инете
/f - overwrite без подтверждения, а так ему нужно было какое-то подтверждение ?
Автор: 01MDM
Дата сообщения: 30.01.2008 11:13
noiseless
Где ты хочешь поменять кодировку в *.bat или в *.log? Поставь chcp 1251 >nul для вывода *.bat в cp1251
И зачем 02.bat?

Код:
@echo off
chcp 1251 >nul
...
for /F %%i in (dipost.txt) do call:job %%i
goto:eof
:job
echo Идет обновление папки %1. Ждите...
rar x -o+ -ilogagg.log %arch% %1 >> update.log
Автор: noiseless
Дата сообщения: 30.01.2008 11:18
01MDM
Нужна одна кодировка в файле update.log

Ну если мою задачу можно решить одним батником, то тогда ваще мегареспектище!
Автор: zhuchella
Дата сообщения: 30.01.2008 11:24
ToAll
Обращаюсь к специалистам - очень нужно решить такую задачу: есть текстовій файл (файл настроек), в нем может быть в единый момент времени тока одно число от 1 до 9. Так вот, надо прочитать с этого файла это число, и в зависимости от того, какое оно (или 1, или 2, или..., или 9) выполнить строго определённые (для каждого числа они разные) команды.
Очень нужна ваша помощь - буду ждать ответов...
Автор: Grim_Repo
Дата сообщения: 30.01.2008 11:35
201MDM
Спасибо! Подскажите, а если у юзера не существует папки C:\Temp то она будет создана? Просто дело в том что нужно чтоб этот батник работал на разных компах включая те на которых, например, вообще нет диска С, а есть только D... А нету ли универсального пути к папке Documents and Settings по принципу %windir% ?


Заранее, огромное спасибо!
Автор: king_stiven
Дата сообщения: 30.01.2008 11:41
zhuchella

Код: for /f "usebackq tokens=*" %%c in ("file.txt") do set Value=%%c
if %Value%==1 команда
if %Value%==2 команда
if %Value%==3 команда
if %Value%==4 команда
if %Value%==5 команда
if %Value%==6 команда
if %Value%==7 команда
if %Value%==8 команда
if %Value%==9 команда
Автор: 01MDM
Дата сообщения: 30.01.2008 12:04
Grim_Repo
Папка должна существовать, иначе reg выдаст ошибку. Создай командой md
Если ты хочешь экспортировать в определенную папку для любого компьютера то посмотри переменные среды командой set и выбери, что надо (%temp%, %userprofile% и т.д)

Не забывай путь заключать в кавычки

Код:
md "%userprofile%\RegSaves"
reg export hkcu "%userprofile%\RegSaves\hkcu_saved.reg"
Автор: zhuchella
Дата сообщения: 30.01.2008 12:12
king_stiven
Большое спасибо.
Автор: 01MDM
Дата сообщения: 30.01.2008 12:30
noiseless

Цитата:
Нужна одна кодировка в файле update.log

Сам бат-файл в какой кодировке? Пересохрани его в win-1251 и поставь chcp 1251 >nul
Автор: Grim_Repo
Дата сообщения: 30.01.2008 12:52
Есть еще одна задача: есть ярлык у которого рабочая папка C:\program\files\ нужно с помощью батника поменять рабочую папку ярлыка на D:\pr0gram\filez\


Заранее, огромное спасибо!
Автор: noiseless
Дата сообщения: 30.01.2008 13:21
01MDM
Сам файл естественно в Дос-кодировке, т.к. выводимые сообщения на русском.
Автор: OOD
Дата сообщения: 30.01.2008 13:52
помогите написать батник есть логические диски A-Z нужно выполнить команды:
cd a:\ ............. cd z:\
dir

по всем этим дискам по очереди
и в случае обнаружения start.bat нужно запустить его с того диска на котором он находиться.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


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