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

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за nnCron - то, что доктор прописал.  
Вопрос снят, спасибо за помощь  
 
Добавлено:
Не работает через nn-крон. Я хотел запустить utorrent, он запускается, но пустой, без информации. обясните если не сложно- как запускать процессы от имени в  кроне. Это наверно должно помочь

Всего записей: 8 | Зарегистр. 16-03-2008 | Отправлено: 23:13 16-03-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
d per
В топике про nnCron, ссылку см. в посту 01MDM, про авторизацию задачи написано жирными буквами прямо в шапке

Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 02:49 17-03-2008
svradmin



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

Цитата:
Проверь этот вариант. Батник должен быть в папке, где нужно проверять подпапки  

 
Большое спасибо за помощь, только можно сделать так чтоб я запускал батник со своего рабочего места используя путь потому что  меня 12 машин где это нужно делать очень далеко друг от друга.

Всего записей: 20 | Зарегистр. 10-03-2007 | Отправлено: 08:15 17-03-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Значит пропиши нужный путь в команду dir

Код:
 
@echo off
setlocal
 
for /f "tokens=4*" %%i in ('dir /ad "Z:\Path" ^| findstr %date% ^| findstr /v [.]$') do (
     set "folder=%%i %%j" && call:move
)
goto:eof
 
:move
if "%folder:~-1,1%"==" " set "folder=%folder:~0,-1%"  
echo D | xcopy /e /y /q "%folder%" "\\Share\%date%\%folder%" 1>nul 2>&1
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:48 17-03-2008
svradmin



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

Всего записей: 20 | Зарегистр. 10-03-2007 | Отправлено: 11:51 17-03-2008
01MDM



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

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:55 17-03-2008
svradmin



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да если прям из папки запускать то работает запускаю допустим с рабочего стола - нет

Всего записей: 20 | Зарегистр. 10-03-2007 | Отправлено: 11:59 17-03-2008
01MDM



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

Код:
 
@echo off
:: chcp 1251 >nul  -- Расскоментируй эту строку если не получится
setlocal
pushd  "Z:\Path"  
for /f "tokens=4*" %%i in ('dir /ad ^| findstr %date% ^| findstr /v [.]$') do (
     set "folder=%%i %%j" && call:move
)
popd
goto:eof
 
:move
if "%folder:~-1,1%"==" " set "folder=%folder:~0,-1%"  
echo D | xcopy /e /y /q "%folder%" "C:\Path\%date%\%folder%" 1>nul 2>&1  
 

 
Попробовал так работает

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:25 17-03-2008 | Исправлено: 01MDM, 12:32 17-03-2008
svradmin



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ОГРОМНОЕ СПАСИБО РАБОТАЕТ, КУЧУ ВРЕМЕНИ ПОСЛЕ 18.00 ПОМОГ СЭКОНОМИТЬ, СПАСИБО

Всего записей: 20 | Зарегистр. 10-03-2007 | Отправлено: 12:37 17-03-2008
19w85



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
Есть вопрос...требуется из батника приостановить (не убивать) один процесс, потом через некоторое время из другого батника снять его "с паузы"...
 
В графическом варианте описанную задачу умеет делать "Process Killer 1.4.2"
http://alex-home-pg.nm.ru/prkiller_manual.htm

Цитата:
suspend/resume process
временно приостановить/снова запустить процесс
Ctrl+Left


Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 13:03 19-03-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
19w85
Утилита PsSuspend от Марка Руссиновича.

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:10 19-03-2008
19w85



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

Всего записей: 623 | Зарегистр. 20-12-2005 | Отправлено: 13:15 19-03-2008
slide1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Архивирование базы 1С 8:
 
Хочу батник, работающий как сервис, выполняющий архивацию всей базы в определенное время постоянно, например в 19.00 каждый день на сервере Windows Server 2003 R2.  
 
Чтобы он создавал архив, например 7z a -r -y с:\Архив с:\База\*.* c именами: база1, база2, база3, база4, база5, потом база1 перезаписывается и дальше по кругу.
Пишут, что можно не всю 1С архивировать, но место есть, можно и всю
http://coder.kh.ua/razrabotka-na-1c/malenkie-hitrosti-3.html
 
Батник планирую запустить как сервис таким образом:
http://forum.ru-board.com/topic.cgi?forum=8&topic=0221
 
Спасибо.
 
Добавлено:
придумал алгоритм, но не знаю деталей синтаксиса языка пакетных файлов
 
создаю файлы, типа Base_dd-mm-yy_hh-mm-ss  "Base_19-03-2008_19-00-00.7z"
каждый день в 19.00
 
если файлов <5 - пишутся новые
 
если = 5 то перезаписывается каждый день самый старый в 19.00
(сервак то может и перезагружаться)
 
я не знаю как проверить и произвести сравнение даты и времени всех пяти файлов
выбрать самый старый и его перезаписать
 
сначала я сделал подсчет ко-ва файлов:
set countfiles=0
for %%a in (d:\Test2\*) do set /a countfiles+=1
echo %countfiles%
 
все ок - пишет кол-во
 
как добавить дату понял: 7z a -r -y d:\Test2\%name%%date%.7z d:\Test1\*.*
но как время нет - там формат hh:mm:ss
 
и как узнать дату время файлов пока не нашел
 
полный ПЭ этот язык пакетный, проще  ассемблер и си и т.п.
вроде все просто, а синтаксис просто капец и функционал

Всего записей: 38 | Зарегистр. 25-03-2005 | Отправлено: 19:18 19-03-2008
Adramelek

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот так можно узнать имя самого старого файла в папке:
Код:
@echo off
dir /b /o:-d>filenames.tmp
for /f "tokens=*" %%I in (filenames.tmp) do set FILENAME=%%I & set FILETIME=%%~tI
erase filenames.tmp
echo Oldest file: %FILENAME%
echo And his time: %FILETIME%
echo on

Всего записей: 6 | Зарегистр. 31-10-2007 | Отправлено: 04:01 20-03-2008 | Исправлено: Adramelek, 04:03 20-03-2008
alers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно удалить из текстового файла первые 1000 строк имеется вот такой батник:
FOR /F "skip=1000 delims= " %%i in (1.txt) Do Echo %%i>2.txt
Он удаляет все строки кроме послденей, подскажите мб дописать что нить ?
 
Добавлено:
Нужно удалить из текстового файла первые 1000 строк имеется вот такой батник:
FOR /F "skip=1000 delims= " %%i in (1.txt) Do Echo %%i>2.txt
Но он удаляет все строки кроме послденей, подскажите мб дописать что нить ?

Всего записей: 14 | Зарегистр. 09-07-2007 | Отправлено: 16:17 20-03-2008
Elroir



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

Код:
more +1000 1.txt>2.txt


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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:56 20-03-2008
slide1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Adramelek спасибо!
 
 Теперь мне видно как тут приходиться изворачиваться, может действительно легче на Java-script или чем то еще
 Все эти коды напоминают мазохизм )))
 
 Как в переменной из значения времени hh:mm:ss сделать hh-mm-ss чтобы его можно было добавить в название файла ?

Всего записей: 38 | Зарегистр. 25-03-2005 | Отправлено: 18:07 20-03-2008
igor_andreev

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

Код:

set i=%time:~0,8%
set i=%i::=-%

Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 18:16 20-03-2008
slide1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev огромное спасибо! ))
 
Добавлено:
все теперь нашел в set /?

Всего записей: 38 | Зарегистр. 25-03-2005 | Отправлено: 20:44 20-03-2008
Adramelek

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slide1
Ну да, извраты, -- но это ж даже не язык программирования. Проще всего твою задачу решить, наверное, можно с nnCron + nnBackup. Погугли, если ещё не сталкивался. Это если нужно создание бэкапа автоматизировать. В батнике для этого придётся запускать бесконечный цикл (типа, TIME /T | FIND "19:00", если ERRORLEVEL 1, по новой, а если нет, -- удаляем самый старый файл и запускаем архиватор для создания нового), и этот батник должен работать постоянно, -- что будет, естественно, кушать CPU time. Или смотри AT /?, но как по мне, лучше nnCron.

Всего записей: 6 | Зарегистр. 31-10-2007 | Отправлено: 01:31 21-03-2008 | Исправлено: Adramelek, 01:39 21-03-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru