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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL,
Если не критично, что бы файл оставался в кодировке UTF-8, то можно сначала его перекодировать в CP1251. Для этого потребуется перекодировщик. Я пользуюсь iconv.exe - взять можно здесь: http://gnuwin32.sourceforge.net/packages/libiconv.htm
 

Код:
 
iconv -c -f utf-8 -t cp1251 1.txt 1>2.txt
 
 

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



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

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 15:07 03-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL
У меня таких проблем нет. Все нормально отрабатывает.
Ты наверное перекодируешь напрямую. Делай через временный файл:

Код:
 
iconv -c -f utf-8 -t cp1251 1.txt 1>1.tmp && move 1.tmp 1.txt
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:34 03-05-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
 
Подскажите почему у меня ping неработает.
Всё время показывает echo do_if_there_is_a_connection
Когда есть инет соединение(ну это понятно)
И когда интернет выключен, всё равно
echo do_if_there_is_a_connection
Код взят с здешнего форума
 
Вот код:
 
:again  
ping -n 1 192.168.0.100 | find "TTL="  
if %errorlevel%==0 ( echo do_if_there_is_a_connection  
) else ( echo do_if_there_is_no_connection )  
sleep 30  
goto again

 
В чём причина?
 
Спс.
 
Извиняюсь, оплошал малость
Всему виной пробелы!
 
Добавлено:
Есть ещё один маленькии вопросик.
А реально ли с помощью батника проверить
почту от определённого отправителя?
Например от Otpraviteli@mail.ru
 
И если письмо пришло на почту, то
сделать определённое действие, а если нет,  
то EXIT
Подтолкните на мысль.
 
Спс.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 23:05 03-05-2009 | Исправлено: Cosmogor, 23:22 03-05-2009
timka85

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще раз всем Привет!
Не подскажет ли кто как прописать команду на перемещение файла Text.txt в папку с именем %Desktop% ?
 
Добавлено:
Важно заметить, что полный путь мне не нужен, батник должен лежать рядом с этой папкой.

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 00:07 04-05-2009
basstard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
timka85
move <file> %%desktop%%

Всего записей: 58 | Зарегистр. 05-08-2008 | Отправлено: 00:49 04-05-2009 | Исправлено: basstard, 01:05 04-05-2009
timka85

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

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 01:36 04-05-2009
timka85

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

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 09:30 04-05-2009 | Исправлено: timka85, 10:14 04-05-2009
Maza_Faka



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

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:27 04-05-2009
timka85

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza_Faka
  У меня есть некоторая нестыковка в выполнении одной цепочки действий. Есть два способа решить эту проблему. Но сначала о ней. Из того, что описано вниз по страницам, видно, что Commander.exe у меня не закрывается после того как я запустил Приложение по ярлыку через (Искомый) батник от 01MDM, и затем тот же батник скрыл мне окно Commander.exe . Так нужно, так как другой, Общий батник должен ожидать завершения процесса Commander.exe, который завершается после закрытия Приложения. Почему должен ожидать? Потому что потом он должен переименовать файл Commander.exe в другое имя. Но это у него (Общего батника) не получится пока Приложение запущено. Так вот теперь не знаю как завершать процесс Commander.exe, когда имя Приложения всегда другое и его не пропишешь в комаде, идущей после скрытия Commander.exe. Поэтому один вариант решения - это, при запуске через ярлык вставить команду на временное переименование запускаемого .ехе файла или на регистрацию где-нибудь его настоящего имени, чтобы потом без проблем продолжить цепочку и завершить процесс Commander.exe.
  Другой вариант - это вообще заменить команду скрытия окна Cpmmander.exe на команду по его убийству, но только в том случае, если команда по его переименовке в Общем батнике каким-то образом будет ожидать завершения процесса, блокирующего его сделать это.
  Не стесняйтесь распрашивать меня, если что-то не понятно в моих словах. Я давно уже не живу в России, т.ч. кто знает...

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 11:01 04-05-2009 | Исправлено: timka85, 11:10 04-05-2009
basstard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
timka85
Почему должен ожидать? Потому что потом он должен переименвать файл Commander.exe в другое имя
 
если после запуска процесс не обращается к ресурсу из которого был запущен,
то ему не важно во что ресурс переименован, он даже не узнает об этом.
если все-таки обращается, то это тоже можно обойти: не переименовывать,
а копировать, оригинал же удалить после завершения процесса:

Код:
start abcde.exe
copy abcde.exe abcde-2.exe
taskkill /f /im abcde.exe
del abcde.exe

Всего записей: 58 | Зарегистр. 05-08-2008 | Отправлено: 11:44 04-05-2009
timka85

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
basstard
Спасибо, но не то Переименованный файл мне нужен на момент запуска по ярлыку, ведущему к нему, а точнее - его оригинальному имени.
Еще раз. Главная цель батника - выбрать ярлык по нужному алфавитному порядку и, переименовав его источник в Renamed.exe, запустить. В этом вся "собака зарыта", нужен запущенный процесс с известным именем! Но может у кого и на второй способ найдется решение?
 
З.Ы. Я бы рассказал и даже показал бы ролик частичного выполнения моей идеи. Но боюсь не всем будет ясна практика такого внедрения серии запусков в особый вид софта...

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 12:04 04-05-2009
basstard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
timka85
Переименованный файл мне нужен на момент запуска по ярлыку
 
тогда переименуй на момент запуска:

Код:
copy abcde.exe abcde-2.exe
start abcde-2.exe
taskkill /f /im abcde-2.exe
del abcde-2.exe

Всего записей: 58 | Зарегистр. 05-08-2008 | Отправлено: 12:36 04-05-2009
Maza_Faka



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

Цитата:
 
Так вот теперь не знаю как завершать процесс Commander.exe, когда имя Приложения всегда другое
 

Процесс имеет окно?

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:00 04-05-2009
LikvidatorMax

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
как из строчки с полным путем и именем файла извлечь имя файла и путь (в разные переменные)?

Всего записей: 36 | Зарегистр. 05-01-2009 | Отправлено: 00:01 05-05-2009
01MDM



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

Код:
 
@echo off
for %%i in ("C:\Windows\system32\shell32.dll") do (
      set "_file=%%~nxi"
      set "_path=%%~dpi"
)      
echo %_file%
echo %_path%  
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 00:08 05-05-2009
XXXXL



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

Цитата:
Ты наверное перекодируешь напрямую. Делай через временный файл:  
iconv -c -f utf-8 -t cp1251 1.txt 1>1.tmp && move 1.tmp 1.txt

 
Вот это уже работает на ура.
 
01MDM, Спасибо!!!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 07:16 05-05-2009
timka85

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza_Faka
Сам процесс Commander..exe на момент закрытия приложения не имеет окна, т.к. он скрыт и виден только в Дисп. задач. А вот приложение - да, имеет.
 
Добавлено:
Вот, сделал видео, показывающее от А до Я где и для чего мне нужно применять искомый мной БАТник:
_ХТТП://ДЕПositfiles.com/files/wej5s4pfl
(меняем Кириллицу на латиницу и качаем)

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 11:16 05-05-2009
Alisad

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

Всего записей: 10 | Зарегистр. 06-11-2008 | Отправлено: 13:00 05-05-2009
griha2009

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задача такая: надо из папки C:\New рассортировать новые версии файлов(разных расширений) по своим подкаталогам в папке C:\Old. Т.е. если в подкаталоге папки C:\Old есть файл совпадающий по имени с файлом из папки C:\New, то файл из папки C:\New копировать(перемещать) в этот подкаталог. Вот вариант в bat-файле  
Код:  

Код:
FOR /R "C:\new\" %%i IN (*.*) DO (  
FOR /R "C:\old\" %%b IN (*.*) DO if "%%~nxb"=="%%~nxi" xcopy "%%~fi" "%%~fb" /Y /D  
)
 
 
работает, но не всегда. Часть файлов в одну папку сортирует, а в остальные нет. Имена файлов везде одинакового вида - PIC_7296.JPG  
Имя папки, в которую сортирует, никакими другими символами не отличается от других папок, также как и все содержит цифры, пробел и русские буквы.
 
Кто подскажет свой вариант или где ошибка?

Всего записей: 8 | Зарегистр. 19-02-2009 | Отправлено: 13:59 05-05-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