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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FGHGJGJSD22
Я написал полный код который запускает notepad.exe нужное число раз. Если параметр не указан или параметр не числовой то он считается равным нулю.

----------
Всем непричастным рекомендую прогулки на свежем воздухе

Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 21:26 09-12-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yurkesha,
 
Вопрос FGHGJGJSD22 заключался в запуске батника (что я и предоставил), а не выполнения задачи в одном батнике определенное кол-во раз.
К сожалению он ничего не знает про переменные среды.
 
FGHGJGJSD22
Помести батник в один из каталогов, указанных в переменной %PATH% (echo %PATH% выручит). И запускай из командной строки:

Код:
 
C:\> название_батника число
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:02 09-12-2009 | Исправлено: 01MDM, 22:05 09-12-2009
yurkesha



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Не вопрос!
Только поменяй (cmd /b /c %0 %cnt%) на (cmd /b /c "%~0" %cnt%)
Да и проверку на наличие первого параметра надоть. Ну и заодно убедиться что параметр - число...

----------
Всем непричастным рекомендую прогулки на свежем воздухе

Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 22:10 09-12-2009
01MDM



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

Цитата:
Да и проверку на наличие первого параметра надоть. Ну и заодно убедиться что параметр - число...

Этот вопрос не задавался.  
 
Не понял для чего %0 на "%~0". Если в названии батника пробелы, то он запустится только в кавычках, значит и значение %0 будет таким же (с кавычками).   А если мышью, то %0 сам заменится на "%~f0"
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:24 09-12-2009 | Исправлено: 01MDM, 22:29 09-12-2009
FGHGJGJSD22

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
echo %PATH%
ввожу в ком строке - выдает папки -
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ABTools
ложу батник с кодом(причем батник если по нему кликаешь-блокно запускает все ок)
 
---------
@echo off
setlocal
set /a "cnt=%1-1"  
::
START notepad.exe
chcp 1251 1>nul  
msg * "Проверка %cnt%"
::
if %cnt% leq 0 (goto:eof) else (cmd /b /c %0 %cnt%)
----------
в любую из вышеперичисленных в ком строке папок( во все ложил)
пример -
C:\Program Files\ABTools\proba.bat
 
ввожу в меню пуск - выполнить -
C:\>proba.bat 3
вылетает окно неудалось найти и.тд...
ввыжу в ком строке START C:\>proba.bat 3
открывается диск С а батник не запускается....
где и в чем ошибка у меня может быть???

Всего записей: 44 | Зарегистр. 09-07-2007 | Отправлено: 00:17 10-12-2009
yurkesha



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FGHGJGJSD22
положи для начала в корень диска C: и проверь.


----------
Всем непричастным рекомендую прогулки на свежем воздухе

Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 09:38 10-12-2009
dskj

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FGHGJGJSD22
У тебя батник лежит в C:\Program Files\ABTools\proba.bat  .  А запускаешь C:\>proba.bat 3 у тебя пути разные, либо proba.bat перенеси в c:\ или укажи так "C:\Program Files\ABTools\proba.bat"
 

Всего записей: 23 | Зарегистр. 25-10-2009 | Отправлено: 09:39 10-12-2009
qwerty355

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

Всего записей: 1 | Зарегистр. 26-01-2008 | Отправлено: 11:25 10-12-2009 | Исправлено: qwerty355, 11:30 10-12-2009
FGHGJGJSD22

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все запустил !!! просто в меню пуск выполнить ввел C:\WINDOWS\proba.cmd 3
Спасибо всем Большое !!!

Всего записей: 44 | Зарегистр. 09-07-2007 | Отправлено: 15:03 10-12-2009 | Исправлено: FGHGJGJSD22, 15:10 10-12-2009
01MDM



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

Цитата:
просто в меню пуск выполнить

Так тебе надо в меню "Выполнить" или в командной строке? Если в "Выполнить", то  

Код:
 
cmd /c proba 5
 

Если в командной строке, то как подсказывал выше:

Код:
 
C:\> proba 5
 

 
"Выполнить" это не командная строка, а просто текстовая пускалка..
 
 
Добавлено:
qwerty355

Цитата:
Добрый день, как осуществить поиск в теле ветки?

В теле какой ветки? Если поиск по теме форума, то лучше всего нажать "Версия для печати" и искать браузером (Ctrl+F)

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чем заменить пробелы в пути? Например   "C:\Program Files\Virus Removal Tool\AVPTool\bases\"

Всего записей: 14 | Зарегистр. 17-11-2009 | Отправлено: 01:53 12-12-2009
01MDM



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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Сорри, разобрался, просто хотел так базы обновить, удаляю пробелы создает папки заново. А прочитать не дошло Сделал паузу там просто доступа нет.

Всего записей: 14 | Зарегистр. 17-11-2009 | Отправлено: 20:27 12-12-2009
FGHGJGJSD22

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Приветствую,Хороший человек.
Команды из ком строки с аргументом у меня так и не пошли..
уже и файлы ложил в папки указанные в пут...что только не длал вообщем...
и из выполнить как ты написал - тоже неидет...прям мистика какая то...
а вот как я написал - тоесть - просто указан путь файл и аргумент(число) через пробел
- все запускается нормально...ну лад запускается и запускается мне достаточно
- просто интересно почему как ты сказал не идет...
 
но сегодня хотел другой вопрос задать -
 
есть 2 текстовых файла
rez1.txt  в нем строка 11111111  и tmp1.txt в нем строка 222222
нужно добавить содержимое tmp1.txt
в rez1.txt - ПОСТРОЧНО...
делаю батник -
-----
@echo off
setlocal
pushd D:\
copy rez1.txt+tmp1.txt
popd
---
все добавляет - НО текст получается не
 
11111111
222222     а
 
11111111
222222
222222
222222
222222
222222

 
тоесть там где оставляю курсор в конечном файле плучается кубик )!!!!
 
 вот он
 
как этого избежать .. или потом все кубики удалить другим батником...
лучше конечно чтоб сразу записывался нормально !
кто то может подсказать ?
пс.надо именно добовлять в rez1.txt  а не складывать все в третий...

Всего записей: 44 | Зарегистр. 09-07-2007 | Отправлено: 01:19 13-12-2009 | Исправлено: FGHGJGJSD22, 01:35 13-12-2009
01MDM



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

Цитата:
Команды из ком строки с аргументом у меня так и не пошли..  

Может расскажешь последовательность действий?

Цитата:
но сегодня хотел другой вопрос задать

Если надо добавить содержимое одного файла в другой воспользуйся командой 'type':

Код:
 
1>>rez1.txt type tmp1.txt  
 

 

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
открываю ком строку (черное окошко с названием ком строка)
в нем пишется
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
 
C:\Documents and Settings\111>
 
потом смотрю какие папки у меня добавлены в echo %PATH%
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
 
C:\Documents and Settings\111>echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\Wind
owsPowerShell\v1.0
 
ложу батник в папку C:\WINDOWS
 
ввожу тут же ( в ком строке) C:\> proba 5
пишет
 
C:\Documents and Settings\111>C:\> proba 5
"C:\" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
 
ну и не запускается разумеется...

Всего записей: 44 | Зарегистр. 09-07-2007 | Отправлено: 15:37 13-12-2009
yurkesha



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FGHGJGJSD22
C:\> proba 5 - это четкое указание запустить(?!) файл C:\ и перенаправить его вывод в файл proba находящийся в текущей папке... Так как такого файла нет то у тебя в текущей папке должен создаваться пустой файл proba
Хочешь чтобы подхватывалось из путей запускай без указания диска: proba 5.
Вобщем харе троллить...

----------
Всем непричастным рекомендую прогулки на свежем воздухе

Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 15:56 13-12-2009
FGHGJGJSD22

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yurkesha
да чет тупанул конкретно...спасибо за разьяснения-все пошло!
 
01MDM
спасибо-содержимое построчно добавляется - все ок..
 
а вот по столбцам наверно из ком строки не сложить ? тоесть допусим
в 1 файле
столбец
1
1
во втором
2
2
надо сложить с разделителем ;(точка с запт к примеру) чтоб получилось
1;2
1;2    
но если допустим в первом файле столбец больше(строк в столбце)
то зпт бы на первом продолжались... тоесть так -
1;2
1;2  
1;
1;
это как вообще рельно ?

Всего записей: 44 | Зарегистр. 09-07-2007 | Отправлено: 16:12 13-12-2009 | Исправлено: FGHGJGJSD22, 16:50 13-12-2009
ZolotnikOV



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

Код:
IF EXIST файл х (
     команда 1
команда 2
команда 3
 
  chcp 1251 1>nul
     @ dir /b /a "папка х" | 1>nul findstr "." || msg %username%  "Успешно установлено !!! "
 ) ELSE (
     @echo off
echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
echo WSHShell.Popup("Не установлено"); >> %temp%\mes.js
start %temp%\mes.js  
)

 
вот такой батник имеется. но в конце не работает сообщение.
 
Задача заменить сообщение через команду msg %username% на сообщение, что выводиться с помощью VBS (оно просто долго висит, а то которое с помощью "msg" через некоторое время пропадает).
 
возможно как то заменить?
 
Спасибо.

----------
— Ах, вы думали? Вы, значит, иногда думаете? Вы — мыслитель? Как ваша фамилия, мыслитель? Спиноза? Жан-Жак Руссо? Марк Аврелий?

Всего записей: 393 | Зарегистр. 26-11-2007 | Отправлено: 21:21 13-12-2009
scorpiorxx

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем! Кому не жалка помогите пожалуйста! Устал делать все руками!
Вообщем есть каталог, в каталоге много подкаталогов, в которых файлы *.xls, нада скинуть самый большой файл (ну если не получается самый большой, то все) на сетевой диск Н, и переименовать его в название каталога и дату создания файла, а забыл дописать чтоб в этом подкаталоге удалить все файлы после  Хелп....а там таких файликов штук 300-400
 
Например: garant_081209.xls  Спасибо большое заранее!!
 
Примерный батник: Тока он кидает самый первый файлик, а нада все или самый большой
 
Все сделал...глядите мож кому понадобится
 
@echo off
cls
 
set price_dir=c:\
set price_name=*.xls
set dest_price_dir=t:\
set dest_price_ext=*.xls
 
echo Поиск в каталоге: %price_dir%
for /d %%x in (%price_dir%*) do call rocess %%~nx
 
goto :EOF
 
 
rocess
set /a i=1
set clnt=%1
echo Клиент: %clnt%
for %%y in (%price_dir%%clnt%\%price_name%) do (
call rocess2 %%y %%~ty  
set /a i=i+1)
goto :EOF
 
rocess2
set file_date=%2
set file_name=%1
set new_file_name=%file_date:~6,4%%file_date:~3,2%%file_date:~0,2%_%clnt%%i%
:echo %file_name%
:echo %new_file_name%
 
ause
copy /B /Y %file_name% %dest_price_dir%%new_file_name%%dest_price_ext%  
del /Q  %file_name%
goto :EOF

Всего записей: 2 | Зарегистр. 08-12-2009 | Отправлено: 10:04 14-12-2009 | Исправлено: scorpiorxx, 09:22 24-12-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