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

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



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

Цитата:
А доверенная зона (По крайней мере в Касперском есть)?

А причём тут доверенная зона?
Отключить проверку нужой папки на своей машине не представляет сложности.  
А на других машинах?

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Братцы, выручайте...
Есть такой bat-ник:

Код:
 
@echo off
 
set Nomer=1
 
for /f "tokens=1* delims=." %%i in ('date /t') do set chislo=%%i
 
for %%j in (c:\temp\XXXX_12.T??) do (  
   
  arj a SN%chislo%%Nomer%XXX.000 %%j
  set /a Nomer=Nomer+1  
   
)
echo %Nomer%
pause
 

 
Суть в следующем: батник должен все файлы вида XXXX_12.T?? заархивировать arj'ом в файлы вида SN%chislo%%Nomer%XXX.000, где значение переменной %chislo% выдергивается из текущей даты, а %Nomer% увеличивается на 1 после архивации предыдущего файла...
 
При выполнении данного батника команда
Код:
arj a SN%chislo%%Nomer%XXX.000 %%j
все время подтягивает в %Nomer% значение 1, таким образом, все исходные файлы запихиваются в один архив... Пятый час ломаю голову, не могу понять, в чем косяк...

Всего записей: 8 | Зарегистр. 13-11-2006 | Отправлено: 13:27 23-05-2008
CasperX



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Столкнулся со следующей проблемой:
Например, создаю cmd файл, с кодом

Код:
 
"C:\Program Files\Winamp\winamp.exe"
notepad.exe
exit
 
 
Соответственно пока я не закрою Winamp, блокнот не запустится.
Далее добавляю перед Winamp команду START

Код:
 
START "C:\Program Files\Winamp\winamp.exe"
notepad.exe
exit
 
 
Но открывается новое консольное окно и на этом все.
Понял что если путь был бы без пробелов, то все работало б на ура.
Вот так например все работает отлично:

Код:
 
START C:\Winamp\winamp.exe
notepad.exe
exit
 
 
Так как правильно запускать что бы работало и с пробелами??

Всего записей: 3 | Зарегистр. 02-02-2006 | Отправлено: 13:50 23-05-2008
01MDM



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

Код:
 
START "" "C:\Program Files\Winamp\winamp.exe"
notepad.exe
exit  
 

 
Ты запускаешь не winamp, а еще один экземпляр cmd с заголовком "C:\Program Files\Winamp\winamp.exe"
 
start /?
 
 
Добавлено:
Kmeleon
 
Если меняешь значение переменной и применяешь его в одном блоке кода (for; if и т.д) надо использовать расширение командной оболочки - setlocal enabledelayedexpansion
 

Код:
 
@echo off
setlocal enabledelayedexpansion  
set Nomer=1
 
for /f "tokens=1* delims=." %%i in ('date /t') do set chislo=%%i
 
for %%j in (c:\temp\XXXX_12.T??) do (  
   
  arj a SN%chislo%!Nomer!XXX.000 %%j
  set /a Nomer+=1  
   
)
echo %Nomer%
pause
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:58 23-05-2008 | Исправлено: 01MDM, 14:16 23-05-2008
CasperX



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

Всего записей: 3 | Зарегистр. 02-02-2006 | Отправлено: 14:22 23-05-2008
Kmeleon



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

Всего записей: 8 | Зарегистр. 13-11-2006 | Отправлено: 16:48 23-05-2008
statistik1981

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извиняюсь если такой вопрос уже был, но я его не нашел.
 
Есть батник:
cmd /c
telnet -f c:/iptel/session.log XXX.XXX.XXX.XXX порт
 
Задача. При перезагрузке сервака, батник поднимается и затирает session.log, что неприемлемо.
 
Необходимо чтобы имя session.log изменялось при каждой загрузке батника.
 
Я в составлении батников практически ноль.
Помогите, братья по разуму.

Всего записей: 7 | Зарегистр. 24-05-2008 | Отправлено: 13:47 24-05-2008
bredonosec



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

Цитата:
Необходимо чтобы имя session.log изменялось при каждой загрузке батника.
а если добавлять время/дату создания в имя файла?  
Или цикл типа "открыть файл а.тхт, прочесть число в переменную, вписать туда число на +1 бОльшее, создать файл сессион+переменная.лог"..  
но почему-то со временем кажется более легким способ..  


----------
Вопрос: 'Что человек курит?' как правило возникает не когда ты слышишь, как он дышит, а когда видишь, что он пишет
Пропеллер играет роль вентилятора, он останавливается -пилот потеет
Аськи нету.

Всего записей: 16256 | Зарегистр. 13-02-2003 | Отправлено: 07:53 25-05-2008
Anhelok



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обьясните плз что значат выделенные мною функции в коде, а то пока нету времени хелп читать
 
@echo off
if NOT EXIST D:\WORK\STUD\ (mkdir D:\WORK\STUD)  
mkdir D:\WORK\STUD\GR1  
mkdir D:\WORK\STUD\GR2  
copy A:\ D:\WORK\STUD\GR2\  
for /R D:\WORK\STUD %%f in (*.dll) do move %%f H:\WORK\STUD\GR1  
cd D:\Winrar\  
rar.exe a -ed D:\WORK\STUD\GR1.rar D:\WORK\STUD\GR1\  
rar.exe a -ed D:\WORK\STUD\GR2.rar D:\WORK\STUD\GR2\  
echo Сейчас будет отформатирована дискета, если вы против - нажмите CTRL+C  
pause  
 
format A: /q  
IF EXIST D:\WORK\STUD\GR1.rar (copy D:\WORK\STUD\GR1.rar A:\)  
IF EXIST D:\WORK\STUD\GR2.rar (copy D:\WORK\STUD\GR2.rar A:\)  
remove D:\WORK\STUD\  
echo Форматирование выполнено.  
Pause  
 
 
И ещё вопрос по строчке echo Сейчас будет отформатирована дискета, если вы против - нажмите CTRL+C Правильно ли она сделана - то есть будет ли отменена операция при нажатии указанных клавиш?  
 
 

Всего записей: 53 | Зарегистр. 20-02-2008 | Отправлено: 15:01 25-05-2008
a8sent

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

Всего записей: 2 | Зарегистр. 25-05-2008 | Отправлено: 17:06 25-05-2008 | Исправлено: a8sent, 17:22 25-05-2008
naben



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

Всего записей: 359 | Зарегистр. 18-02-2007 | Отправлено: 22:39 25-05-2008
statistik1981

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

Цитата:
а если добавлять время/дату создания в имя файла?  
Или цикл типа "открыть файл а.тхт, прочесть число в переменную, вписать туда число на +1 бОльшее, создать файл сессион+переменная.лог"..  
но почему-то со временем кажется более легким способ..  

 
Ребят, я же сказал что почти ничего не соображаю в написании батников, когда дело доходит до таких задач.
мне не принципиально как будет называться файл, главное чтобы он не затирался.
Если не сложно, напишите ктонить как все должно выглядить, просто сам я не справлюсь.

Всего записей: 7 | Зарегистр. 24-05-2008 | Отправлено: 12:48 26-05-2008 | Исправлено: statistik1981, 12:49 26-05-2008
Elroir



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

Цитата:
 
Есть батник:  
cmd /c  
telnet -f c:/iptel/session.log XXX.XXX.XXX.XXX порт  
Необходимо чтобы имя session.log изменялось при каждой загрузке батника.  
 

 

Код:
 
@echo off
set "dt=%date: =_%"
set "dt=%dt:.=%"
set "dt=%dt:-=%"
set "dt=%dt:/=%"
set "tm=%time::=%"
set "tm=%tm:~0,6%"
telnet -f c:/iptel/session_%dt%_%tm%.log XXX.XXX.XXX.XXX порт
 
 
Названия файлов будут "session_ДАТА_ВРЕМЯ.log"

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:54 26-05-2008
statistik1981

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

Цитата:
Названия файлов будут "session_ДАТА_ВРЕМЯ.log"

 
Elroir , ты спаситель.
 
Респект и уважуха на веки вечные.

Всего записей: 7 | Зарегистр. 24-05-2008 | Отправлено: 22:33 26-05-2008
devywka_v_kedah



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите пожалуста. Вот у меня имеется батничек который производит копирование файлов..
 
 
 @echo off
   goto Begin
:Help
   @echo off
   @echo  Чтобы воспользоваться справкой введите copy_ /h
 
 
   @echo off
 
   goto End
 
 
:Helping
   @echo off
   @echo Использование: copy Путь1 Путь2 [Шаблон(ы)][/R][/H][/S][/A]
   @echo     Путь1 - Путь к папке источнику  
   @echo     Путь2 - Путь к папке приемнику
   @echo            С помощью ключей задаются атрибуты файлов:
   @echo             /R - только для чтения
   @echo             /H - скрытый файл
   @echo             /S - системный файл
   @echo             /A - архивный файл
   @echo            При отсутствии указанных ключей копируются все файлы
 
 
   @echo off
 
   goto End
 
 
 
:noparam
set First=c:\1
set Second=c:\2
Goto otkuda
 
 
:Begin
   if [%1]==[/?] goto Helping
   if [%2]==[/?] goto Helping
   if [%1]==[/h] goto Helping
   if [%2]==[/h] goto Helping
   if [%1]==[] goto Help
   if [%1]==[den] goto noparam
   
 
   
 
 
   set First=%1
   set Second=%2
 
   shift
   shift
 
   set Shablon=
   set Sh=
   set Atrib=
 
:Keys
   set Sh=%Shablon%
   set Shablon=%1 %Sh%
 
   if [%1]==[/S] set Shablon=%Sh%
   if [%1]==[/R] set Shablon=%Sh%
   if [%1]==[/A] set Shablon=%Sh%
   if [%1]==[/H] set Shablon=%Sh%
   if [%1]==[] set Shablon=%Sh%
 
   if [%1]==[/?] goto Helping
   if [%1]==[/h] goto Helping
   if [%1]==[/H] set Atrib=%Atrib%H
   if [%1]==[/S] set Atrib=%Atrib%S
   if [%1]==[/R] set Atrib=%Atrib%R
   if [%1]==[/A] set Atrib=%Atrib%A
   if [%1]==[] goto Otkuda
 
   shift
   goto Keys
 
:Otkuda
@echo off
   
   dir %First%>Nul
   if not %Errorlevel%==0 @echo Неверно задан адрес копируемого файла
   if not [%Errorlevel%]==[0] goto End
   
   set Tekdir=%CD%    
   Chdir /d %First%>NUL
   if not %Errorlevel%==0 set copyfiles=1
   if [%copyfiles%]==[1] copy %First% %Second%>NUL
   if [%copyfiles%]==[1] goto End
   
   Dir %Shablon% /B/S/A:%Atrib%-D/O:N>C:\tmp.txt
   Chdir /D %Tekdir%
 
   for  /F %%i in (C:\tmp.txt) do copy %%i %Second%>NUL
   del C:\tmp.txt
 
:End
   set First=
   set Second=
   set One=
   set Two=
   set Attrib=
   set Shab=
   set Snablon=
   set Tekdir=
 
 
 
Может он и не совсем харашо написан, но я не профессионал по этому делу :) Дело в том что он не копирует подпапочки указаной папки-источника. Файлы копирует из всех подпапочек а сами подпапочки не копирует. Помогите мне пожплуста это исправить.

Всего записей: 4 | Зарегистр. 17-04-2008 | Отправлено: 20:14 27-05-2008 | Исправлено: devywka_v_kedah, 20:18 27-05-2008
JOSRADA

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

Всего записей: 5 | Зарегистр. 02-02-2008 | Отправлено: 22:55 27-05-2008
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
JOSRADA
А ты уверен, что это задача для батничков?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 23:15 27-05-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
devywka_v_kedah
Использование команды copy принципиально? Или можно использовать xcopy?

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:56 28-05-2008
Haccel



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
devywka_v_kedah
Ошибся языком

Всего записей: 58 | Зарегистр. 26-08-2007 | Отправлено: 07:53 28-05-2008
devywka_v_kedah



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

Всего записей: 4 | Зарегистр. 17-04-2008 | Отправлено: 09:18 28-05-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