Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd) 2

Модерирует : gyra, Maz

Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
 
Старая версия первого сообщения

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:08 19-11-2007 | Исправлено: Dmitriy05, 22:49 13-04-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JI063uk

Цитата:
Пишет что все ОК, а результата нет даже на моем компе

То, что ты пытаешься сделать -  regedit.exe без дополнительных утилит (что-нибудь типа psexec.exe) сделать не может.


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 10:14 21-04-2008
JI063uk



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Elroir

 
Вот так делаю
 
@echo off
for /f "tokens=*" %%i in (list.txt) do (
reg add "\\%%i\hklm\SOFTWARE\direktoria /v strokovyi parametr /t znacenie /f"
)
PAUSE

Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 12:08 21-04-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JI063uk
Попробуй так:

Код:
 
@echo off  
for /f "tokens=*" %%i in (list.txt) do (  
reg add "\\%%i\hklm\SOFTWARE\direktoria"
reg add "\\%%i\hklm\SOFTWARE\direktoria" /v "strokovyi parametr" /d "znacenie" /f
)
PAUSE
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:17 21-04-2008
JI063uk



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Elroir

 
 
@echo off  
for /f "tokens=*" %%i in (list.txt) do (  
reg add "\\%%i\hklm\SOFTWARE\direktoria" /v "strokovyi parametr" /d "znacenie" /f  
)  
PAUSE
 
Работает... Спасибо всем

Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 15:16 21-04-2008
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Банальная задача заставила меня напрягать мозги:

Код:
:: Проверяем наличие файлов в каталоге
:: ===================================
:: этот вариант, даже при отсутствии файлов возвращает Yes
IF EXIST *.* (
    ECHO Yes
) ELSE (
    ECHO No
)
 
:: Пришлось мудрить...
:: но этот вариант отрабатывает нормально
FOR /R %%i IN (*) DO SET file=%%i
IF NOT
"%file%"=="" (
    ECHO Yes
) ELSE (
    ECHO No
)

Вот думаю может кто то решил проблему проще чем я ???

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 16:52 21-04-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers
Так можно:

Код:

dir /b source\* | find /v "LjuBaYA XPEHb" >nul && echo Yes || echo No

 
Вот чуть посложней вариант, но определяет, есть ли подпапки, есть-ли файлы в подпапках и т.п.
http://windowsitpro.com/article/articleid/77717/jsi-tip-6415-how-can-a-batch-script-test-if-a-folder-is-empty-or-contains-folders-files-or-both-folders-and-files.html
 
Вот это в общем то тот код, что я привел
http://windowsitpro.com/article/articleid/83633/jsi-tip-9350-another-way-to-test-if-a-folder-is-empty.html

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 17:21 21-04-2008 | Исправлено: igor_andreev, 17:30 21-04-2008
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers

Цитата:
Вот думаю может кто то решил проблему проще чем я ???

IF NOT EXIST .\Distrib\WIN51 goto:se
В случае отсутствия переходит в секцию  :se

Всего записей: 13019 | Зарегистр. 15-03-2006 | Отправлено: 18:03 21-04-2008
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
Какая банальная задача и как много интересных решений!
СПАСИБО.
 
gryu
Ответ - неверный. Переход произойдет только в случае отсутствия каталога.

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 20:45 21-04-2008
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите плиз, как из bat запустить несколько программ, расположенных в подкаталогах (пути не могут быть абсолютными, так как папка с подкаталогами располагается ны usb)
Подробнее...
как быть с пробелами в путях ?

Всего записей: 2932 | Зарегистр. 10-04-2003 | Отправлено: 00:04 22-04-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
svs123456789
Второй строчкой поставь

Код:
pushd "%~dp0"


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:25 22-04-2008
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
спасибо!
а относительные пути в кавычках нельзя задавать ".\путь\"  ?
 
не подскажите батник или скрипт для создания подключения по adsl
с предварительной проверкой что оно отсутсвует?
Подробнее...

Всего записей: 2932 | Зарегистр. 10-04-2003 | Отправлено: 00:36 22-04-2008 | Исправлено: svs123456789, 00:37 22-04-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
svs123456789

Цитата:
а относительные пути в кавычках нельзя задавать ".\путь\"  ?

Можно.
 
Добавлено:

Цитата:
с предварительной проверкой что оно отсутсвует?


Код:
 
type "%SystemDrive%\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk" 2>nul | find "[ZTE ZXDSL852]" >nul
if not errorlevel 1 (echo Connection exists) else (echo Connection doesn't exist)
 

 

Цитата:
батник или скрипт для создания подключения по adsl

Посмотри http://support.microsoft.com/kb/284269/ru

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:47 22-04-2008
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mozers

Цитата:
Ответ - неверный. Переход произойдет только в случае отсутствия каталога.  

Сори за не совсем понятнвый пример.  
WIN51 - это не каталог, а маркерный ФАЙЛ из дистрибутива ХР.
И проверяется в данном случае наличие именно файла.
Можно написать  
IF NOT EXIST .\Distrib\tralala.tla goto:se  
 
 
 

Всего записей: 13019 | Зарегистр. 15-03-2006 | Отправлено: 12:08 22-04-2008
Ortios



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чем перекодировать файлы из UTF-8 в CP-1251?  Из командной строки.

Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 14:58 22-04-2008 | Исправлено: Ortios, 15:16 22-04-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ortios
utf8towin.vbs

Код:

If WScript.Arguments.Count = 2 Then
  Set InputStream = CreateObject("ADODB.Stream")
      InputStream.Type = 2
      InputStream.CharSet = "utf-8"
      InputStream.Open
      InputStream.LoadFromFile(WScript.Arguments.Item(0))
      InputFileContents = InputStream.Readtext
      InputStream.Close
  Set InputStream = Nothing
  Set OutputStream = CreateObject("ADODB.Stream")
      OutputStream.CharSet = "windows-1251"
      OutputStream.Mode = 3
      OutputStream.Open
      OutputStream.WriteText InputFileContents
      OutputStream.SaveToFile(WScript.Arguments.Item(1))
      OutputStream.Close
  Set OutputStream = Nothing
Else
  Wscript.Echo "Usage: utf8towin.vbs source-file destination-file"
End If    
 
Wscript.Quit

 
Добавлено:
Весь список кодировок, поддерживаемых ОС и которые, соответственно можно использовать в качестве  InputStream.CharSet и OutputStream.CharSet, есть в реестре HKEY_CLASSES_ROOT\MIME\Database\Charset, можно извратиться и сделать универсальный перекодировщик.

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 17:40 22-04-2008
Ortios



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev,
Потрясающе, спасибо!!
Надо бы добавить в шапку!

Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 19:59 22-04-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ortios
 
Еще советую утилиту iconv. Понимает более 100 кодировок. Вдруг надо будет перекодировать например koi8-r.
 

Код:
 
iconv -c -f utf-8 -t cp1251 utf.html > 1251.html
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:46 22-04-2008
Ortios



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM,
За iconv также спасибо!
PS. И чего я только искал, как всегда ничего не нашел.

Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 22:24 22-04-2008
Fantom 14



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ а есть ли команда чтобы батник запускался в минимизированном состоянии?

Всего записей: 322 | Зарегистр. 23-10-2004 | Отправлено: 09:59 23-04-2008
Doc_Evil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня есть одна задумка, но чтобы её осуществить нужно переименовать многотомные архивы примерно так: test.part01.rar, test.part02.rar... на test01.db, test02.db... Максимум, что я добился при помощи команды ren, это сменить расширение или test (в начале). Т.к. у файлов вроде бы как двойное расширение, переименовать part** никак мне не удаётся Подскажите, есть ли решение для моей проблемы?

Всего записей: 234 | Зарегистр. 09-07-2004 | Отправлено: 19:21 23-04-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd) 2
Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru