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

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

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

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

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

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mosl
 
Подозреваю просто различия в gnuwget и winwget.
 
"cmd /c wget" использую по привычке. Однажды долго не мог понять почему не отрабатывает батник. Оказалось, что wget при неудачной закачке просто завершал батник. Поэтому и запускаю его в отдельной cmd.
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:56 12-10-2009
B16



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хотел бы написать простенький батник, для удаления кое каких папок и нескольких ключей реестра.
 
Собственно вот что нужно: там где я учусь стоят ноды с триалом, разорится на лицу не кто не хочет, вот и переставляем каждые 30 дней. И как то надоедает удалять папки оставшиеся после нода, а потом ещё в реестре. Хотелось бы написать батник, что бы удалял папки(желательно, что бы выводился запрос на удаление: да\нет), допустим по имени ESET и определённые ключи реестра.
С реестром то я и не знаю, что сделать, с папками тоже средне.....

Всего записей: 69 | Зарегистр. 31-07-2009 | Отправлено: 19:59 14-10-2009 | Исправлено: B16, 20:03 14-10-2009
N1G

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скажите а возможно ли при помощи пакетного файла определить букву съемного диска или флешки?

Всего записей: 11 | Зарегистр. 15-10-2009 | Отправлено: 16:43 15-10-2009
01MDM



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

Цитата:
при помощи пакетного файла определить букву съемного диска или флешки?

Выбирай:

Код:
 
@echo off
setlocal
 
::1
set "exec=echo list volume ^| diskpart ^| findstr Removable"
for /f "tokens=3" %%i in ('%exec%') do echo %%i:
 
::2
set "exec=wmic logicaldisk where drivetype^="2" get name /value"
for /f "tokens=2 delims==" %%i in ('%exec%') do echo %%i
 
::3
for %%i in (q w e r t y u i o p a s d f g h j k l z x c v b n m) do (
    fsutil fsinfo drivetype %%i: | 1>nul findstr Removable && echo %%i:
)
 

Все варианты требуют админских привилегий. 1 и 3 только для английской версии (поменять "Removable")

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:29 15-10-2009
B16



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Где читал, что можно написать простенький батник, что бы он создавал в папке с файлами тхт файлик в котором будут написаны имена файлов(с расширением) и папок.
Кто знает как это сделать?

Всего записей: 69 | Зарегистр. 31-07-2009 | Отправлено: 19:14 15-10-2009
01MDM



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

Код:
 
@echo off
rd /s /q "%ProgramFiles%\Eset"
rd /s /q "C:\Test\Test"
 
reg delete "HKLM\Software\Eset" /f  
 

Создать список файлов можно так:

Код:
 
dir /b /s /a 1>list.txt
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:43 15-10-2009
N1G

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
to 01MDM
 
Спасибо огромное за предложенный вариант!
 

Цитата:
 
@echo off
setlocal
 
set "exec=wmic logicaldisk where drivetype^="2" get name /value"  
for /f "tokens=2 delims==" %%i in ('%exec%') do echo %%i
 

 
А можно ли выполнить сортировку от диска A:\, а то к примеру оны выдаёт A:\ и G:\
т.е. флопик он всегда определяет.

Всего записей: 11 | Зарегистр. 15-10-2009 | Отправлено: 09:09 16-10-2009 | Исправлено: N1G, 09:22 16-10-2009
01MDM



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

Цитата:
А можно ли выполнить сортировку от диска A:\, а то к примеру оны выдаёт A:\ и G:\
т.е. флопик он всегда определяет.

Т.е. Исключить A: ? Исправь строку:

Код:
 
set "exec=wmic logicaldisk where ^(drivetype^="2" AND name!^="A:"^) get name /value"
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:38 16-10-2009
N1G

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Благодарю!

Всего записей: 11 | Зарегистр. 15-10-2009 | Отправлено: 12:50 16-10-2009
Mosl

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Хотел что спросить. Может у вас будут какие идеи. Почему один и тот же *.cmd файл может правильно отрабатываться при запуске в ручную, но при этом не правильно отрабатываться при запуске через планировщик задач?
Если помните:

Код:
@echo off    
wget -t 1 ya.ru  
  if not exist index.html (  
    rasphone.exe -h "Beeline"
    rasphone.exe -d "Beeline"
)  
2>nul del index.html  
 

Работает отлично. Но когда он запускается по расписанию в планировщике задач он не учитывает  «if not exist index.html» и в любом случае переходит к выполнению следующих условий (    rasphone.exe)

Всего записей: 620 | Зарегистр. 09-05-2006 | Отправлено: 01:16 17-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
потому что (скорее всего - так я сильно пьян у меня строчки в глазах прыгают) при запуске из другой директории рабочая директория получается та откуда его запустили нуна добавить строку
 
CD /D %~DP0
это сменит рабочую директория на ту где валяется сам бантник

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 03:31 17-10-2009 | Исправлено: bomzzz, 03:34 17-10-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mosl
bomzzz прав. "%~DP0" в кавычках, если в пути к батнику есть пробелы
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:15 17-10-2009 | Исправлено: 01MDM, 09:19 17-10-2009
Mosl

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

Код:
@echo off
CD /D %~DP0    
wget -t 1 ya.ru  
  if not exist index.html (  
    rasphone.exe -h "Beeline"  
    rasphone.exe -d "Beeline"  
)  
2>nul del index.html    
 

 
или так  

Код:
@echo off
wget -t 1 ya.ru "%~dp0index.html"
  if not exist index.html (  
    rasphone.exe -h "Beeline"  
    rasphone.exe -d "Beeline"  
)  
2>nul del index.html    

Всего записей: 620 | Зарегистр. 09-05-2006 | Отправлено: 10:00 17-10-2009 | Исправлено: Mosl, 10:02 17-10-2009
01MDM



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

Код:
 
@echo off
pushd "%~dp0" или cd /d    
 
wget -t 1 ya.ru  
  if not exist index.html (  
    rasphone.exe -h "Beeline"  
    rasphone.exe -d "Beeline"  
)  
2>nul del index.html  
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:19 17-10-2009
omamont

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите устал руками править.
 
Есть пака в ней много твиков реестра
 
001-Классический вид Панели управления.reg

Код:
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"ForceClassicControlPanel"=dword:00000001

002-Цвет всех гиперссылок заменяется на указанный цвет (красный).reg

Код:
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Control Panel\Colors]
"HotTrackingColor"="255 0 0"

И т.д.
 
надо скопировать имя твика и вставить в сам твик второй строкой  
добавив паред именем ( ; закоментировать) и удалить последние 4 знака ( .reg )
 
чтоб получилось так: (выделил желаемое)
001-Классический вид Панели управления.reg

Код:
Windows Registry Editor Version 5.00
;001-Классический вид Панели управления
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"ForceClassicControlPanel"=dword:00000001

Ну и т.д.
 
 
 

Всего записей: 3438 | Зарегистр. 12-01-2007 | Отправлено: 01:02 18-10-2009 | Исправлено: omamont, 01:33 18-10-2009
01MDM



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

Код:
 
@echo off
for %%i in (*.reg) do sed -i "2 s/^.*$/;%%~ni/" "%%i"
 
:: del sed* - если создаются временные файлы вида sedQWHjNy
 
del sed*
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:31 18-10-2009
s3rghm

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
добрый день, помогите начинающему.
 
нужно, чтобы скрипт в цикле проверял есть ли файл в папке, если есть, то чтобы он его перемещал во второй каталог, а из второго копировал в третий. ну и так постоянно.
 
заранее спасибо.

Всего записей: 1 | Зарегистр. 18-10-2009 | Отправлено: 12:57 18-10-2009
omamont

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM не сработало - пишет:

Цитата:
"sed" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

и так много раз.
положил несколько файлов для примера которые надо редактировать
здесь: http://rghost.ru/537803/private/3d3a5f289d95ab7aca2261691fd7bf92

Всего записей: 3438 | Зарегистр. 12-01-2007 | Отправлено: 16:27 18-10-2009 | Исправлено: omamont, 18:44 18-10-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
omamont
http://gnuwin32.sourceforge.net/packages/sed.htm
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:41 18-10-2009
omamont

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM  
 
ОГРОМНОЕ СПАСИБО помогло - работает !!!
 
А баз сторонних утилит - никак ?
типа: заменить в файле строчку

Код:
@Echo Off
::заменить в файле строку "Temp=" на "Temp=268698540,027KJIGEIOHTEXO"
Call :SkipAdd "%ProgramFiles%\WinTools.netProfessional\wintoolspro.ini"
Exit
 
:SkipAdd
 FindStr /IBVC:"Temp=" "%~f1">"%~dpn1.tmp"
 Echo Temp=268698540,027KJIGEIOHTEXO>>"%~dpn1.tmp"
 If Exist "%~dpn1.bak" DEL /F/Q "%~dpn1.bak"
 Ren "%~f1" "%~n1.bak"
 Ren "%~dpn1.tmp" "%~nx1"
DEL /F/Q "%~dpn1.bak"
Exit /B


Всего записей: 3438 | Зарегистр. 12-01-2007 | Отправлено: 22:04 18-10-2009
   

Страницы: 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru