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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
omamont

Цитата:
А баз сторонних утилит - никак ?  

Да нет:

Код:
 
@echo off
for %%i in (*.reg) do (
 
    1>"%%~ni.temp" (
        echo Windows Registry Editor Version 5.00
        echo ;%%~ni
        more +2 "%%i"
    )
    
    move "%%~ni.temp" "%%i"
)
 

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

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:06 18-10-2009 | Исправлено: 01MDM, 23:12 18-10-2009
omamont

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

Цитата:
В данном случае можно и так, просто не люблю батником работать с текстом.

кракозябры

Код:
Windows Registry Editor Version 5.00
;168-ЋвЄ«озЁвм ®б- бвЄг 'Cўo©cвўa cЁcвe¬л' - эт 2й вариант
;168-Отключить оснастку 'Cвoйcтвa cиcтeмы'
[HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{0F3621F1-23C6-11D1-AD97-00AA00B88E5A}]
"Restrict_Run"=dword:00000001

если можно поправте, нет - забудте
я и за 1й вариант благодарю от всей души - твиков там под тыщу.
 
И ещё - как первый вариант и в подпапках заставить дописывать?
 

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



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

Цитата:
кракозябры  

надо указать кодировку (cp1251). Сразу с подпапками:

Код:
 
@echo off
1>nul chcp 1251
 
for /f "tokens=*" %%i in ('dir /b /s /a *.reg') do (
 
    1>"%%~ni.temp" (
        echo Windows Registry Editor Version 5.00
        echo ;%%~ni
        more +2 "%%i"
    )
     
    move "%%~ni.temp" "%%i"
)  
 

 
Ну и для первого варианта, с sed'ом, так же изменить условия цикла for

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

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

Всего записей: 3438 | Зарегистр. 12-01-2007 | Отправлено: 09:30 19-10-2009 | Исправлено: omamont, 09:30 19-10-2009
newhk



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

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 15:51 19-10-2009
bomzzz



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

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:06 19-10-2009
newhk



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

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 16:22 19-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну то есть у целевого файла всегда одно и тоже имя, он всегда лежит в одной и той же папке, его нужно скопировать в папку копилку изменив имя на имя+дата, и возможно даже стереть в конце
 
Добавлено:
батник MyBatnik.bat копирует себя добавляя к имени дату

Цитата:
 
ECHO OFF
COLOR 9F
CLS
set CURRENTDATE=%DATE%
copy MyBatnik.bat MyBatnik-%CURRENTDATE%.bat
 

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:33 19-10-2009 | Исправлено: bomzzz, 16:34 19-10-2009
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спс, есть только 1 нюанс, можно ли такое проделывать с бэкапом базы данных, там же нет расширения

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 16:52 19-10-2009 | Исправлено: newhk, 16:54 19-10-2009
bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
можно. значит имя будет без расширения
copy MyBatnik.bat ggg-%DATE%
 
Добавлено:
если в пути будут пробелы кавычки не забудь или используй в досовском формате пути

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 16:55 19-10-2009 | Исправлено: bomzzz, 16:58 19-10-2009
newhk



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

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 17:00 19-10-2009 | Исправлено: newhk, 18:44 19-10-2009
miksanfree



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли какая-нибудь консольная программа для установки уровня громкости, записи, а также для работы с микшером и т.д?

Всего записей: 745 | Зарегистр. 28-07-2006 | Отправлено: 19:44 19-10-2009
Mosl

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Даже в самой простой задачи может оказаться много подводных камней. Захотел запускать скрипт от имени системы что бы окно cmd не всплывало постоянно перед носом. И оказалось что в соединении запущенном от иени другого пользователя не сохраняется имя пользователя и пароль. Теперь приходиться использовать команду rasdial для запуска vpn. И тут выяснилось что rasdial выполняет только одну попытку подключения. И если она не удачна больше не подключаеться. Нашел утилиту sleep, она повторяет запуск любой команды согласно указаным параметрам.
Подправил скрипт:

Код:
@echo off  
pushd "%~dp0"    
 
wget -t 1 ya.ru    
  if not exist index.html (
        :dial
    rasdial "1" 2 3
    sleep 20
    rasdial | find "1"
    if %errorlevel%==1 goto dial    
)    
2>nul del index.html    
 
 
 
Вывод команды:

Код:
Microsoft Windows [Version 6.1.7600]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.
 
C:\Users\ELVEON>"F:\Soft\Скрипты\pawetv2 - копия.cmd"
--23:36:01--  http://ya.ru:80/
           => `index.html'
Connecting to ya.ru:80...
connect: No such file or directory
Giving up.
 
Установка связи с Beeline...
Проверка имени и пароля пользователя...
Регистрация компьютера в сети...
Установлена связь с Beeline.
Команда успешно выполнена.
Beeline
Связь с Beeline уже установлена.
Команда успешно выполнена.
Beeline
 

 
Вроде отробатывает, но хотелось узнать мнение спецов. Правельно ли написано условие и можно ли как-то оптимизировать?

Всего записей: 620 | Зарегистр. 09-05-2006 | Отправлено: 09:29 20-10-2009
LordTor

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

Всего записей: 3 | Зарегистр. 15-10-2009 | Отправлено: 10:21 21-10-2009
rain33



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
Нужен батник, замеряющий скорость сети между клиентом с севером.
Т.е. я беру текущее время, кидаю файл на \\server , снова получаю текущее время, вычитаю. т.к. размер файла изветен - делю и получаю скорость.
 
И еще один.  
Начинаю слать пинг на сервер, ping x.x.x.x -l 50000 -w 1 -n 100 (типа 50000 байт в секунду)
как сделать так, чтобы когда приходит "request timed out", то в файл log.txt об этом писалось  
"<date><time> пинг не прошел("

Всего записей: 2 | Зарегистр. 21-10-2009 | Отправлено: 11:42 21-10-2009 | Исправлено: rain33, 11:43 21-10-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LordTor
Удаляет файл 1.txt из всех подпапок начиная с "Root Folder", за исключением указанных в %excludepath%

Код:
 
@echo off
setlocal
 
set excludepath="C:\Path\To\Folder 1\" "C:\Path\To\Folder 2\" "C:\Path\To\Folder 3\"
 
for /f "tokens=*" %%i in ('dir /b /s "Root Folder\1.txt"') do call:del "%%i"
goto:eof
 
:del
for %%i in (%excludepath%) do if "%~dp1"==%%i goto:eof
del %1
 

 

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
а как насчет моего батника - одобряешь? )))

Всего записей: 620 | Зарегистр. 09-05-2006 | Отправлено: 18:37 21-10-2009
Nastja_Vetrova

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста как решить это:"вывести на экран имена всех скрытых файлов на диске С: размер которых превышает 10КБ". Препод просто дал задание, а как эго делать не объяснил, лекций небыло, мы там все в шоке. Помогите пожалуйста, я не думаю, что он что-то сложное нам бы дал, я почитала те команды, но абсолютно не знаю как с ними быть...Зарание спасибо!

Всего записей: 1 | Зарегистр. 21-10-2009 | Отправлено: 23:15 21-10-2009
volodyalipkin



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

Код:
dir /S /b /A:H-D > q && for /F "delims=?" %i IN (q) do if /I %~zi GTR 10240 echo %i && del q

Не работает для  pagefile.sys  и hiberfil.sys  
dir - вывод списка
/S - во всех директориях
/b - выводить только имена
/A:H-D - атрибуты скрытые (H), но не выводить директории
> q - записать все файлы (см. выше) в файл с имнем q
 
&& - связка команд
 
for /F  "delims=?" %i IN (q) - для каждого файла имя которого есть строка в файле q делать
if /I %~zi GTR 10240 echo %i - если размер файла (%~zi - для файла %i) больше (GTR) чем 10240 (10КВ), то вывести имя файла
 
&& - связка команд
 
del q - удалить файл q
 
 
Работать будет ОЧЕНЬ долго (ибо надо пройтись через ВСЕ файлы на диске). Я бы убрал ключ /S и запустил бы из корня диска С.
 
Вторая проблема - если файл q был на диске, то он будет потерян
 
Command Extensions должны быть включены

Всего записей: 771 | Зарегистр. 12-10-2002 | Отправлено: 03:15 22-10-2009 | Исправлено: volodyalipkin, 03:24 22-10-2009
FranViera



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Прошу прощения если пишу не в той теме, или повторяюсь...
Возникла проблема с запуском bat-файла из командной строки (windows XP SP2)
 
Имеется: файл <имя>.bat расположенный на диске С:\
если в командной строке (cmd) набрать
 
start C:\<имя>.bat
 
файл не запускается, пишет - "отказано в доступе"
если же просто C:\<имя>.bat (без команды start) - то запускается....
 
после чего началась эта проблема сказать затрудняюсь, недели две назад все было нормально, только сегодня обнаружил.
 
пользователь - локальный админ, права на диск С и файл - полный доступ.
проверка NOD32 на вирусы отрицательная, "левых" процессов не имеется....
 
(необходимо использовать именно команду start с ключом /min для запуска bat-файла свернутым: start /min C:\<имя>.bat)

Всего записей: 1 | Зарегистр. 22-10-2009 | Отправлено: 09:33 22-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