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

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
залил копию UnxUtils c http://unxutils.sourceforge.net/ в связи с тем, что даунлоад мертвый с оффсайта
в архиве unxutils.zip & unxupdates.zip последние версии
взять можно отсюда:
http://www.gazup.com/4BR8E-unxutils.rar-download-mirrors

Всего записей: 62 | Зарегистр. 04-10-2008 | Отправлено: 17:53 07-03-2009
Le9i0nX

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Зраствуйте все.
Перейду сразу к делу.
 
cmd /с chcp 1251>nul && dir /a:-d /-c /n /s /t:w C:\ >C:\0\scren.txt
 
Вот такая строка проблема в том что вывод в файл всегда в 866 кодировки идет.
Я не могу использовать внешний конвектор потому что он портит часть имен файлов.
 
Пример спецефичных имен файлов.
мне надо чтоб вывод в файл был в win кодировке.

Всего записей: 14 | Зарегистр. 19-09-2007 | Отправлено: 18:00 07-03-2009 | Исправлено: Le9i0nX, 19:32 07-03-2009
maxi812

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

Всего записей: 15 | Зарегистр. 25-02-2009 | Отправлено: 05:10 08-03-2009
Maza_Faka



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

Код:
 
cmd /с chcp 1251>nul & dir /a:-d /-c /n /s /t:w C:\ >C:\0\scren.txt
 

 
Добавлено:
bk99
XCOPY; ROBOCOPY?

----------
Купи 5 чебуреков и собери кошку

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:24 08-03-2009 | Исправлено: Maza_Faka, 07:27 08-03-2009
Le9i0nX

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza_Faka
Точно также.  
Я заметил что если писать в 0.cmd
в таком формате все норм
 
chcp 1251>nul
dir /a:-d /-c /n /s /t:w C:\ >C:\scren.txt
 
В две стоки, но получаестя не очень моя прога вызывает созданый такой батник, а потом его удаляеть.
Мне надо к своей проге прикрутить расшаривание всего диска а этот метод быстрее всех. Проверял.

Всего записей: 14 | Зарегистр. 19-09-2007 | Отправлено: 08:45 08-03-2009
Maza_Faka



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

Цитата:
Точно также

Хм... А так?

Код:
 
(cmd /c chcp 1251>nul) && (cmd /c dir /a:-d /-c /n /s /t:w C:\>C:\0\scren.txt)
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:35 08-03-2009
Le9i0nX

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не такой не прокатит здесь у тебя ошибка синтаксиса  
нельзя пременять скобки до загрузки самого интерпритатора команд(cmd.exe)

Всего записей: 14 | Зарегистр. 19-09-2007 | Отправлено: 10:07 08-03-2009
Maza_Faka



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

Цитата:
здесь у тебя ошибка синтаксиса

Да, хотя при запуске из батника или ком. строки работает. Запускай без скобок, у меня работает.

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:22 08-03-2009
Le9i0nX

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

Код:
cmd /c chcp 1251>nul && cmd /c dir /a:-d /-c /n /s /t:w C:\>C:\0\scren.txt

Всего записей: 14 | Зарегистр. 19-09-2007 | Отправлено: 12:17 08-03-2009 | Исправлено: Le9i0nX, 12:18 08-03-2009
bk99



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

Цитата:
Помогите организовать синхронизацию (в одну сторону) одинаковых папок на двух не связанных сетью компах. (Существующие программы синхронизации по разным причинам не подходят.) Хотелось бы так:  
1. на компе №1 запускаем file1.bat, который создаёт список файлов указанной директории (с путями и подпапками).  
2. идём с этим списком на комп №2 и запускаем file2.bat  - при этом на сменный носитель копируются только файлы (с сохранением структуры директорий), отсутсвующие в списке. При этом, одинаковые файлы (т.е. файлы, которые уже есть на обоих компах)должны игнорироваться. Структура директорий должна учитываться обязательно. Например, "dir1/file.aaa" и "dir1/dir2/file.aaa" - должны считаться разными файлами.  
3. возвращаемся на комп №1 и сливаем со сменного носителя новые файлы. Здесь тоже, наверное, батник понадобится, чтобы файлы в нужные подпапки попадали.  
В идеале хорошо бы учитывать и даты создания файлов и заменять более старые файлы, расположенные на компе №1, более новыми файлами с компа №2.


Цитата:
Maza_Faka
XCOPY; ROBOCOPY?

Спасибо.
Комманды XCOPY и ROBOCOPY, насколько я понимаю, были бы полезны для синхронизации компов, связанных в сеть. А у меня-то проблема немного другая, компы не связаны, только через сменный носитель. Конечно, можно постоянно держать на этом сменном носителе все файлы с компа №1 и синхронизировать его через XCOPY или ROBOCOPY. Но проблема в том, что синхронизируемая директория на компе №1 довольно большая (более 100 000 файлов, ну и размер соответствующий). Вопрос по большому счёту в том, как создать список файлов компа №1 и как на компе №2 этот список обработать.

Всего записей: 937 | Зарегистр. 27-12-2005 | Отправлено: 15:13 08-03-2009
magistrfet



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
можно ли вызвать готовый батник, реализованный с меню
из другой программы, так, чтобы указать например выбор при меню, к примеру есть install.bat, в нем меню с 4-мя пунктами, как вызвать из другой программы сразу запуск 4-ого пункта без доп. нажатий?

Всего записей: 724 | Зарегистр. 27-09-2001 | Отправлено: 16:53 08-03-2009
NvvLazyTiger



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bk99
Цитата:
Но проблема в том, что синхронизируемая директория на компе №1 довольно большая (более 100 000 файлов, ну и размер соответствующий).

Строго говоря, основная проблема не в этом (сменный носитель нужного объёма - не проблема в наши дни;), а в другом:
Цитата:
В идеале хорошо бы учитывать и даты создания файлов и заменять более старые файлы, расположенные на компе №1, более новыми файлами с компа №2.

Т.е. (по контексту) оба компа "живут каждый своей жизнью", но требуется как-то синхронизировать их файлы. Модель "ведущий/ведомый" (комп№2/комп№1) в этом случае не корректна, т.к. рано или поздно какое-то "новое" на ведомом будет утрачено.
 
Такая задача имеет сравнительно простое решение только при наложении одного из двух жёстких условий:
  1. на "ведомом" компе невозможно изменение файлов в контролируемой папке;
  2. на "ведомом" компе требуется именно "зеркало" ведущего
В случае a. можно строить список наличия на ведомом и... "далее со всеми остановками" (но зато не столь обязательно полное зеркало на сменном носителе).
В случае b. оное [полное] зеркало обязательно, но в целом задача проще.
 
... Или придётся смириться с ситуацией "кто в лес, кто по дрова"... ;)
 
BTW Условие новее априори сомнительно-c ("часы у всех свои";). Правильнее - строить/сравнивать CRC/MD5/etc.
 
 ?

Всего записей: 257 | Зарегистр. 14-02-2009 | Отправлено: 17:10 08-03-2009
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
magistrfet
Все зависит от того, как организовано меню в install.bat. Если с помощью "goto METKA", тогда можно, например, вызывать install.bat с параметром 1 (или 2,3,4), а внутри прописать (в самом начале):

Код:
 
if "%~1"=="1" goto МЕТКА1
if "%~1"=="2" goto МЕТКА2
if "%~1"=="3" goto МЕТКА3
if "%~1"=="4" goto МЕТКА4
 


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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:36 08-03-2009
magistrfet



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
да, именно так, а параметр использовать типа
install.bat -1(в зависимости от выбора)? так не выходит
 
Добавлено:
аа , сорри, ну да - просто, без минуса. спс

Всего записей: 724 | Зарегистр. 27-09-2001 | Отправлено: 19:29 08-03-2009
bk99



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NvvLazyTiger
Да нет же, ты не понял! Просто помоги мне
Цитата:
как создать список файлов компа №1 и как на компе №2 этот список обработать.
Как всё это в батнике организовать или скрипт какой-нибудь простенький... Без дискуссий... Тупо подскажи мне как создать список файлов в директории со семи путями и подпапками. И как потом скопировать на флешку только те файлы из указанной директории, которые отсутствуют в списке. Оставим пока даты создания, контрольные суммы и прочее.

Всего записей: 937 | Зарегистр. 27-12-2005 | Отправлено: 12:32 09-03-2009
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bk99
Код:
set SOURCEDISK=d:
set DESTDISK=f:
for /R %SOURCEDISK%\ %%N in (*) do (
if not exist "%DESTDISK%%%~pnxN" copy "%SOURCEDISK%%%~pnxN" "%DESTDISK%%%~pnxN"
)


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

Всего записей: 2376 | Зарегистр. 12-10-2006 | Отправлено: 14:56 09-03-2009
apy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
Помогите пожалуйста со скриптом.
Есть текстовый файл File.txt нужно в этом файле 6 строку заменить другими данными.
 В моём скрипте почему-то не работает счетчик.
 
SET /A ln=0
FOR /F "skip=%ln% tokens=*" %%A IN (File.txt) DO (IF /I NOT %ln%==6 (echo %%A >>Fileout.txt) else (echo ======= >>Fileout.txt)) & set /A ln+=1

Всего записей: 1 | Зарегистр. 08-10-2008 | Отправлено: 11:46 10-03-2009
Widok



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

Лимит страниц. Продолжаем здесь


----------
Тень превращается в фантазии, таящиеся в глубине вашей души.
Пока идёшь ты среди теней, да не будет зла с тобой.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:40 10-03-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 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