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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
spaulding2005



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята день добрый помогите в написании скрипта.
 
Требуется каждые минут 5(запускаться будет сторонним шедулером) копирование определённых типов файлов из одной папки в другую.без всяких вопросов подтверждений итд.
 
к примеру из папки c:\Documents and Settings\888\Local Settings\Temp\ чтобы копировались файлы с расширениями doc rar итд в папку на диске c:\files
 
заранее спасибо

Всего записей: 397 | Зарегистр. 29-11-2006 | Отправлено: 12:18 23-10-2009
01MDM



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

Код:
 
@echo off
for %%i in (doc rar) do (
   copy "c:\Documents and Settings\888\Local Settings\Temp\*.%%i" "C:\files"
)
 

 
Mosl
Если все работает, значит все нормально.

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
у меня в именно моём случае с диска D будет копироваться но имя пользователя у меня на русском языке первой папки:
 
D:\Documents and Settings\вася\Рабочий стол
 
и пишет при выполнении что: Системе не удаётся найти указанный путь.

Всего записей: 397 | Зарегистр. 29-11-2006 | Отправлено: 14:52 23-10-2009
01MDM



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

Код:
 
@echo off
chcp 1251 1>nul
...
 

Или сохраняй файл в OEM-кодировке (cp866).
 
PS. Обсуждалось уже 1001 раз.

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет !!!
нужен бат
который должен выполнять функцию "горячих клавиш"
например :
команда   "STRG + C" или "STRG +F4" ,или любая другая,но чтобы я мог вписывать их сам...
 
то есть запустил :STRG-xxx.bat ,а он виртуально нажал комбинацию клавиш,желательно  
в том окне которое в этот момент на переднем плане..,очень нужно спасибо...

Всего записей: 175 | Зарегистр. 23-01-2007 | Отправлено: 16:40 23-10-2009 | Исправлено: Solotoy, 16:43 23-10-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Solotoy
Не думаю, что это функционально, при нажатии на батник, актиное окно теряет фокус, поэтому с 3-х секундной паузой:

Код:
 
:: CTRL-F.cmd
@echo off
setlocal
 
for /f "tokens=1,2 delims=-" %%i in ("%~n0") do (
    set "key1=%%i"
    set "key2=%%j"
)
 
nircmdc wait 3000
nircmdc sendkey %key1% down
nircmdc sendkey %key2% press
nircmdc sendkey %key1% up
 

nircmd

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

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

Цитата:
Начинаю слать пинг на сервер, ping x.x.x.x -l 50000 -w 1 -n 100 (типа 50000 байт в секунду)  
как сделать так, чтобы когда приходит "request timed out", то в файл log.txt об этом писалось  
"<date><time> пинг не прошел("

Решал сходную задачу:
Packet_Loss_Catcher.cmd
Код:
REM Адрес пингуемого узла
SET PINGADDR=192.168.1.1
 
REM Размер пакета для пинга
SET PACKETSIZE=32
 
REM Количество пакетов
SET ITERATIONS=86400
 
REM Временной промежуток между пакетами в секундах +1, т.е. для промежутка в 1 секунду д.б. 2
SET ITERLENGTH=2
 
 
 
 
 
echo Pinging %PINGADDR% by %PACKETSIZE%-bytes packets>Packet_Loss_Catcher%PACKETSIZE%.log
echo Started at %DATE% %TIME%.>>Packet_Loss_Catcher%PACKETSIZE%.log
echo.>>Packet_Loss_Catcher%PACKETSIZE%.log
for /l %%I in (1,1,%ITERATIONS%) do (
ping -n 1 -l %PACKETSIZE% %PINGADDR%
IF ERRORLEVEL 1 CALL :TIMER
ping -n %ITERLENGTH% 127.0.0.1>nul
)
echo.>>Packet_Loss_Catcher%PACKETSIZE%.log
CALL :FINISHER
rar m -m5 -md64 -- PLC%PACKETSIZE%_LOG_%DATE:~9,4%%DATE:~6,2%%DATE:~3,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%  Packet_Loss_Catcher%PACKETSIZE%.log
START %~nx0
exit
 
:TIMER
echo Packet loss at: %DATE% %TIME:~0,8%>>Packet_Loss_Catcher%PACKETSIZE%.log
GOTO :EOF
 
:FINISHER
echo.>>Packet_Loss_Catcher%PACKETSIZE%.log
echo Ended at %DATE% %TIME%.>>Packet_Loss_Catcher%PACKETSIZE%.log
GOTO :EOF
 
Этот скрипт висел на сервере, постоянно пинговал удалённый сервер одиночными пакетами (размер пакета и др. параметры задаются в начале). При потере пакета в лог пишется "Packet loss at: %DATE% %TIME:~0,8%" (дата и время с точностью до секунды) Отработав заданное количество итераций паковал лог в архив и перезапускался (с текущими параметрами цикл выполнения скрипта чуть больше суток)

----------
http://www.imho.ws

Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 17:57 23-10-2009 | Исправлено: BorlandIMHO, 17:59 23-10-2009
Mosl

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
я так понимаю nircmd позволяет запускать задачи и програмы без отображения любого пользовательского интерфейса.
Немогли бы вы подсказать как написать команду что бы с помощью nircmd запустить bat или cmd файл в скрытом режиме.
Еще вроде для этого можно использовать cmdow.exe но я тоже не асилил как заставить его запускать програму в скрытом режиме.

Всего записей: 620 | Зарегистр. 09-05-2006 | Отправлено: 23:44 25-10-2009
omamont

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mosl
http://wiki.oszone.net/index.php/Скрываем_консольные_окна
 

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mosl
Nircmd не справится с консольным окном. Лучше используй hstart.exe
 
Cmdow не позволяет полностью скрыть окно, при старте окошко на миг выскакивает.

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
опробовал Cmdow - максимум чего добился окно мигает и все.
А вот Nircmd отробатывает как надо. Через выполнить запускаю "nircmd.exe execmd C:\ins.cmd" консольное окно не появляеться, команды указаные в ins.cmd (net use X: \\10.10.1.1\distr$$\Default_install "" /user:sp\user1) выполняеться. Может где-то подводные камни?
а для hstart.exe надо писать команду так -  hstart /NOCONSOLE "C:\ins.cmd" ?

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO cпасибо! В скрипте разобрался. Респект.

Всего записей: 2 | Зарегистр. 21-10-2009 | Отправлено: 12:06 26-10-2009
01MDM



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

Цитата:
А вот Nircmd отробатывает как надо.

Действительно, я всегда пользовался nircmdc.exe, а она показывает окно.
 

Цитата:
а для hstart.exe надо писать команду так -  hstart /NOCONSOLE "C:\ins.cmd" ?

Да, так.
 

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
От вас узнал о большов количестве полезных "утелит" (Nircmd, hstart, wget, sleep, Cmdow) для написания скриптов. Может стоить в шапку добавить ссылки на все подобные утилиты с кратким описанием?

Всего записей: 620 | Зарегистр. 09-05-2006 | Отправлено: 13:44 26-10-2009
tempsend

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток, а не подскажите пример или как реализовать следующее:
- есть папка с целой кучей файлов с разными расширениями. Хотелось бы разложить  эти файлы в целевые папки, например картинки ( .jpg,.gif,tiff и т.д.) в папку "pictures"  документы ( .doc, .pdf, .xls  и т.д.) в папку "docs" и т.д. Заранее спаибо за посказку.

Всего записей: 8 | Зарегистр. 02-09-2009 | Отправлено: 17:36 26-10-2009
Kiev78

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

Цитата:
как реализовать следующее:

for /f %%i in ("*.jpg") do move %%i "pictures\%%i"
Что-то типа такого (почитай справку по командам for и move).

Всего записей: 244 | Зарегистр. 17-06-2006 | Отправлено: 19:28 26-10-2009
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tempsend
Где-то так:
sorter.cmd
Код:
SET SOURCEFOLDER=c:\downloads
SET PICSFOLDER=c:\Pictures
SET DOCSFOLDER=c:\Documents
FOR /R "%SOURCEFOLDER%" %%N in (*.jpeg *.jpg *.gif *.tiff *.tif *.psd) DO move "%%N" "%PICSFOLDER%"
FOR /R "%SOURCEFOLDER%" %%N in (*.doc *.docx *.xls *.xlsx *.ppt *.pdf) DO move "%%N" "%DOCSFOLDER%"


----------
http://www.imho.ws

Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 19:47 26-10-2009 | Исправлено: BorlandIMHO, 19:49 26-10-2009
Mosl

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
при выполнении hstart /NOCONSOLE "C:\1.cmd" и nircmd.exe execmd C:\1.cmd
Условия прописаные в 1.cmd - не саблюдаются!
Как оказалось они не могли найти wget - решил эту проблему скинув wget.exe в деректорию с 1.cmd. После этого hstart /NOCONSOLE "C:\1.cmd" стал отробатывать, nircmd.exe execmd C:\1.cmd находит wget.exe, но условие не выполняет. Скорей всего тут опять что-то с путем к папке запуска. Что и как подправить что бы все начало коректно отробатывать?
 

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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mosl
Я так понял, что wget ничего не помнит из предыдущих команд батника и ориентируется только на свою пускалку, в данном случае hstart или nircmd, рядом с ними и сохраняет index.html. Если пускается с ярлыка, то надо указывать рабочую папку (папку где батник).
 
Добавлено:
Или добавить к hstart параметр "/D=C:\путь\к\1.cmd"
 
Так index.html сохранился рядом с батником:

Код:
 
C:\Users\mdm\BIN\Hstart\hstart.exe /noconsole /D="C:\Users\mdm\Desktop" "C:\Users\mdm\Desktop\1.cmd"
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:40 27-10-2009 | Исправлено: 01MDM, 10:52 27-10-2009
decrups

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здрасте всем !
Требуется написать bat файл чтоб он добовлял галочку "Разрешить удаленный доступ к этому компу" во вкладке "Удаленные сеансы" в свойствах Мой компбютер.
Во как .
С чего начать? где эта вкладка "Удаленные сеансы" вообще лежит ?
Кто-нибудь знает?Помогите!!!

Всего записей: 12 | Зарегистр. 14-01-2006 | Отправлено: 13:58 27-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