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

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

Автор: cluster
Дата сообщения: 08.05.2009 10:55
Ребят, вопрос есть.

Код: @echo off

set t_date=%date%
echo %t_date%
date 08.08.2007
echo %date%
notepad.exe
date %t_date%
Автор: An4eus
Дата сообщения: 08.05.2009 11:00
kolyas
так я и хочу для баз серера заменить путь \\Server\bases\ на Y:\
Автор: kolyas
Дата сообщения: 08.05.2009 11:29
An4eus
net use x: \\имя компьютера\имя общего ресурса, где x: имя диска, которое Вы хотите назначить на общедоступный ресурс.
Автор: An4eus
Дата сообщения: 08.05.2009 11:58
kolyas
здесь я подробно описал, что хочу
т.е. запустить батник на всех машинах и он изменил реестр 1С пользователя
т.е. например так
\\Server\bases\Дом на Y:\Дом
\\Server\bases\Сад на Y:\Сад
Автор: Maza_Faka
Дата сообщения: 08.05.2009 12:34
cluster

Цитата:
Как сделать, чтобы после запуска notepad.exe скрипт продолжал выполнять следующие команды?

А, что, разве не выполняются?
Автор: cluster
Дата сообщения: 08.05.2009 12:56
Maza_Faka

Цитата:
А, что, разве не выполняются?

Пока не закроешь блокнот, не выполняются.
Автор: kolyas
Дата сообщения: 08.05.2009 13:03
An4eus
как я тоже писал выше пользуй whs .. тут ты хочешь мало того, что пользоваться условиями , дак и выдерать и изменять значения в реестре ...
что-то я такого в бат файлах не помню..
Автор: Manjago
Дата сообщения: 08.05.2009 13:36

Цитата:
@echo off

set t_date=%date%
echo %t_date%
date 08.08.2007
echo %date%
notepad.exe
date %t_date%


Используй start


Код: set t_date=%date%
echo %t_date%
date 08.08.2007
echo %date%
start notepad.exe
date %t_date%
Автор: cluster
Дата сообщения: 08.05.2009 13:52
kolyas

Цитата:
что-то я такого в бат файлах не помню..

Команда REG

Manjago

Цитата:
Используй start

Гуд. Спасибо
Автор: kolyas
Дата сообщения: 08.05.2009 14:12
An4eus

ДЛЯ УДАЛЕНИЯ ПАРАМЕТРА ИЗ командной строки
Для работы с реестром из командной строки предназначена утилита reg.exe, которая поставляется в составе Support Tools, на одном диске с дистрибутивом Windows. Вы можете скачать эту утилиту здесь. Ее размер 49 килобайт. Сохраните ее в папке, где установлена Windows. В этом случае, работать с ней можно будет без полного указания пути.
Для получения подробных сведений о работе с утилитой reg.exe выполните в командной строке

reg /?

Чтобы удалить параметр в реестре выполните следующую команду:

REG DELETE HKCU\Software\WindowsFAQ\Test /v Path

Эта команда удалит параметр Path, который находится в разделе HKCU\Software\WindowsFAQ\Test. Обратите внимание на то, что при выполнении этой команды выдается запрос на подтверждение удаления. При работе команды в пакетном файле его исполнение может быть прервано для подтверждения пользователем удаления параметра. Чтобы подтверждение не выводилось используйте /f. Этот ключ отключает вывод подтверждения.
При помощи reg.exe можно удалить сразу целый раздел, вместе со всеми параметрами и подразделами, находящимися в нем. Для этого используйте следующую команду:

REG DELETE HKCU\Software\WindowsFAQ

Результатом работы этой команды станет удаление раздела WindowsFAQ вместе со всеми подразделами и параметрами. Обратите внимание на то, что, как и в первом случае, выполнение команды останавливается на запросе подтверждения удаления раздела. Чтобы отключить этот запрос добавьте к команде /f, т.е. команда будет выглядеть следующим образом:

REG DELETE HKCU\Software\WindowsFAQ /f

Будьте внимательны с удалением параметров и разделов, по неосторожности можно удалить что-то нужное, особенно, когда отключено подтверждение удаления.

Как изменить значение параметра в реестре из командной строки      Версия для печати
Автор SavageNoName

Для работы с реестром из командной строки предназначена утилита reg.exe, которая поставляется в составе Support Tools, на одном диске с дистрибутивом Windows. Вы можете скачать эту утилиту здесь. Ее размер 49 килобайт. Сохраните ее в папке, где установлена Windows. В этом случае, работать с ней можно будет без полного указания пути.
Для получения подробных сведений о работе с утилитой reg.exe выполните в командной строке

reg /?

Предположим, что в разделе HKCU\Software\WindowsFAQ\Test существует параметр с именем Path, типом данных REG_EXPAND_SZ и значением %systemroot%. Нам нужно изменить значение с %systemroot% на %temp%. Для этого используйте следующую команду:

REG ADD HKCU\Software\WindowsFAQ\Test /v Path /t REG_EXPAND_SZ /d %"temp"%

Таким образом, мы заменим значение параметра Path с одного на другое.
Обратите внимание на то, что команда ожидает от пользователя подтверждения. Чтобы отключить это подтверждение добавьте в указанную выше команду /f


вроде так
Автор: max200701
Дата сообщения: 08.05.2009 14:50

Цитата:
Здраствуйте уважаемые знатоки CMD ,есть одна проблема которую не могу осилить по причине не знания языка цмд(ну не програмист я )потому прошу помощи.
В консоле набираю команду Telnet ,получаю:Добро пожаловать в программу-клиент Microsoft Telnet,далее набираю команду: open 192.168.1.1 23 ,получаю assword: далее ввожу пароль получаю:
Подробнее... [?]


далее вожу команду:24 ,получаем
Подробнее... [?]

далее ввожу команду:8 получаем
Copyright (c) 1994 - 2004 ZyXEL Communications Corp.
P660RU-T1>
далее комана:poe drop poe0
получаем смену ІР адреса
От как бы это всё автоматизировать?Заранее спасибо

Мужыки может кто чё подскажет по проблемке
Автор: 01MDM
Дата сообщения: 08.05.2009 15:09
An4eus

Цитата:
т.е. например так
\\Server\bases\Дом на Y:\Дом
\\Server\bases\Сад на Y:\Сад


Код:
@echo off
setlocal

set exec='reg query HKCU\Software\1C\1Cv7\7.7\Title ^^^| findstr "REG_.*"'
for /f "tokens=*" %%i in (%exec%) do set "param=%%i" && call:set
goto:eof

:set
set param=%param: =$%
set param=%param:\\Server\bases=Y:%

for /f "tokens=1-3" %%i in ("%param%") do (
set name=%%i
set type=%%j
set data=%%k
)

reg add HKCU\Software\1C\1Cv7\7.7\Title /v "%name:$= %" /t %type% /d "%data:$= %" /f
Автор: anmiles
Дата сообщения: 09.05.2009 12:49
Есть батник, который удаляет в папке все файлы старше 15 минут:

Код: for /r "I:\" %%a in (*.*) do for /f "tokens=1,2" %%c in ("%%~ta") do call :test %%d "%%a"
goto :eof
:test
set f_time=%1
set /a t6 = %f_time:~0,1% * 600 + %f_time:~1,1% * 60 + %f_time:~3,1% * 10 + %f_time:~4,1%
set /a t3 = %time:~0,1% * 600 + %time:~1,1% * 60 + %time:~3,1% * 10 + %time:~4,1% - 15
if %t6% LSS %t3% del %2
goto :eof
Автор: wolf0425
Дата сообщения: 09.05.2009 13:21
anmiles если обход подкаталогов не нужен то как-то так

Код: @echo off

for /f "skip=4 delims=" %%a in ('dir /a-d /4 /tc /-c t:\*.*') do call :test %%a
goto :eof

:test
set string=%*
if not "%string:~14,1%"==":" goto :eof

set f_time=%string:~12,5%
set f_name=%string:~36%

set /a t6 = %f_time:~0,1% * 600 + %f_time:~1,1% * 60 + %f_time:~3,1% * 10 + %f_time:~4,1%
set /a t3 = %time:~0,1% * 600 + %time:~1,1% * 60 + %time:~3,1% * 10 + %time:~4,1% - 15
if %t6% LSS %t3% echo del %f_name%
goto :eof
Автор: max200701
Дата сообщения: 09.05.2009 19:45
Привет , так чё никто ничего так и не подскажет по моей проблемке?
Автор: wolf0425
Дата сообщения: 09.05.2009 22:24
max200701 поискать слово telnet по версии для печати - самостоятельно никак нельзя?
Не раз писалось, что не поддерживает стандартный telnet переадресацию, надо пользоваться сторонними утилитами. типа этой
http://www.petri.co.il/software/tst10.zip

Автор: Maza_Faka
Дата сообщения: 10.05.2009 07:40
anmiles

Цитата:
удаляет в папке все файлы старше 15 минут

Можно с помощью VBS:

Код:
Dim objFSO, objFolder, colFiles, objFile, sDir

sDir = "c:\"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sDir)
Set colFiles = objFolder.Files

For Each objFile In colFiles
If DateDiff("n", objFile.DateCreated, Now) > 15 Then objFSO.DeleteFile(objFile, True)
Next
Автор: Alex1985
Дата сообщения: 10.05.2009 23:00
есть папка bases. в ней папки base001, base002, ... и файлы с различными именами.
всё это надо аккуратненько завернуть в отдельные архивы, папку base001 в архив base001 и тд (то есть папки должны упаковываться в архивы с такими же именами) для файлов же имена будут набираться ручками.
команда dir /b/o:g > c:\run.cmd даст мне список папок и файлов, а sbs2.com приведёт этот список к виду

Код: 7z a -mx backup\.7z C:\bases\base001
7z a -mx backup\.7z C:\bases\base002
...
7z a -mx backup\.7z C:\bases\file001.sql
7z a -mx backup\.7z C:\bases\file002.sql
...
Автор: max200701
Дата сообщения: 10.05.2009 23:37
wolf0425
Спасибо конечно за помощь,но я уже давно знаю об этой утилите,вот токо чёт у меня не получается с её помосчью сделать реконект
Автор: anachrom
Дата сообщения: 11.05.2009 08:42
А можно сделать так, что бы:

Код: действие
Если воскресение то...
Автор: 01MDM
Дата сообщения: 11.05.2009 11:09
anachrom

Цитата:
действие
Если воскресение то...



Код:
@echo off
for /f %%i in ('wmic path win32_LocalTime get DayOfWeek') do (
if %%i==0 echo Today is Sunday, doing something
)
Автор: anachrom
Дата сообщения: 11.05.2009 12:22
01MDM
Спасибо!
А можете код расшифровать, что бы я не просто копипаст сделал?
Автор: 01MDM
Дата сообщения: 11.05.2009 13:03
anachrom

Цитата:
А можете код расшифровать, что бы я не просто копипаст сделал?


Здесь просто с помощью цикла for берем результат выполнения команды оболочки wmi wmic.exe и при помощи оператора условия if сравниваем полученный результат. В данном случае возвращаются значения от 0 до 7 (0-вск ... 7-суб)

Подробнее:
for /?
if /?
wmic /?
или в сети.
Автор: anachrom
Дата сообщения: 11.05.2009 13:53
Я новичек, но мне очень интересно покопаться и поразбираться. Большое спасибо 01MDM
Смысл того, что я хочу в следующем:
Каждый день (пн-вс) делается копирование нужных мне файлов. В воскресение после очередного копирования убиваются файлы в папочке с прошлой неделей (LastWeek) в которую перемещается все что скопировалось за эту неделю.
В принципе это обычный BackUp получаетя, который хранит инфу двух недель

Код: @echo off
md %Date%
cd %Date%
xcopy "Путь" /s /f /c > backup.log
cd..
for /f %%i in ('wmic path win32_LocalTime get DayOfWeek') do (
if %%i==0 del /q "LastWeek"
...
)
Автор: king_stiven
Дата сообщения: 11.05.2009 14:53
anachrom

Цитата:
Как мне переместить все что насоздовалось в папку LastWee

Смотри команду move. Как смотреть справку смотри в шапке.
Цитата:
да и del /q не совсем подходит, очищается только файлы в корневой папке, а дальше ни ни
Тоесть удалитьвсё в папке без удаления папки?

Код: PushD папка
if not errorlevel 1 RD /s /q .
PopD
Автор: anachrom
Дата сообщения: 11.05.2009 15:23
king_stiven

Цитата:
Тоесть удалитьвсё в папке без удаления папки?

Чуть чуть нет, удаляются файлы в папке LastWeek, а папки которые в ней и вайлы в них остаются. Т.е. если в папке LastWeek есть файл temp.txt и папка temp. Так вот файл temp.txt стирается а папка temp остается со всем содержимым. А надо, что бы папка LastWeek была полостью очищенна.
С move вроде разобрался, rd PushD и PopD тоже, вот errorlevel 1 непойму.
Автор: king_stiven
Дата сообщения: 11.05.2009 20:22
anachrom

Цитата:
А надо, что бы папка LastWeek была полостью очищенна.

Этот пример как раз самое то.
Цитата:
вот errorlevel 1 непойму

Защита, если по какой либо причине скрипт не найдёт Папку, он удалит всё (!) в текущей директории.

Добавлено:
Нет ли у кого подробной справочки по wget на русском?
Автор: Ortios
Дата сообщения: 11.05.2009 20:55
king_stiven,

Цитата:
Нет ли у кого подробной справочки по wget на русском?

Набери в гугле "насос для интернета".
Автор: Rush
Дата сообщения: 11.05.2009 20:58
king_stiven

Цитата:
подробной справочки по wget на русском

http://vap.org.ru/storeforever/wget/05-00.shtml
Автор: anachrom
Дата сообщения: 11.05.2009 21:31
а как можно сделать так, что бы ссылки по которым будет проходить копирование брались из другого файла (например list). т.е. в файле list записываются ссылки что нужно скопировать, а батник их оттуда вытаскивает и копирует.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: как сохранить сетевые настройки


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