| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Windows > Как написать BAT файл? |
| Автор: bel_nikita 2.6.2004, 11:20 |
| Может есть ссылочка про написание BAT файлов? Какие команды в MS-DOS есть? не помню уж... давно это было Нужно по условию выполнить копирование файлов. |
| Автор: Akina 2.6.2004, 12:19 | ||
http://rusdoc.df.ru/reviews/os/msdos/
по КАКОМУ условию? не все условия можно проверить в батче - придется пользовать скрипт (в ДОС-сеансе) или доп. программу - в чистом ДОСе. |
| Автор: Fish 2.6.2004, 12:19 |
| if <условие> copy FILE1 FILE2 |
| Автор: Akina 2.6.2004, 12:20 |
| Fish фига... if <условие> do copy FILE1 FILE2 |
| Автор: boevik 2.6.2004, 12:27 |
| Как вариант, использовать VBScript вместо батника DOS. |
| Автор: Fish 2.6.2004, 12:39 |
| Akina Причём здесь do??? |
| Автор: Akina 2.6.2004, 13:40 |
| Fish при том что только начиная с версии 6.0 DO перестало быть необходимым. До того было либо if ..... do команда, либо if ..... goto метка. А автор версии ДОСа не указал... |
| Автор: Fish 2.6.2004, 14:07 |
| |
| Автор: bel_nikita 2.6.2004, 15:42 |
| запарился MS-DOS вспоминать Могу я сделать типа условия?: А=1 if <A=1> copy ... else copy... Т.е. типа перемнную ввести. Ситуация такая: Есть два файла. нужно скопировать один - нужный. Какой имеено должен выбрать пользователь. Заводить это дело на клавишу - не катит. Хотелось бы, чтоб юзер изменил переменную в батнике. А потом запустил батник. Почему мне так надо? Долго пояснять. Но надо. |
| Автор: Akina 2.6.2004, 16:09 | ||
[copyfile.bat]
|
| Автор: boevik 2.6.2004, 16:11 | ||
| Не уверен, что в BAT можно объявлять переменные и делать простой IF. Если надо запускать под виндой, но не хочется писать прогу, то можно воспользоваться vbscript. Вот к примеру код:
Сохранить код в файл с окончанием vbs. Кликнуть по нему два раза и будет работать. |
| Автор: bel_nikita 2.6.2004, 16:30 | ||
| Akina не понял:
что это за условие? |
| Автор: Akina 2.6.2004, 16:38 | ||
bel_nikita
Знаешь что такое параметры командной строки? так вот - это проверка того что при запуске батча в качестве первого параметра ему передана единица. Т.е. было запущено CopyFile 1 а не CopyFile 2 или там CopyFile 3 2 1 |
| Автор: Fish 3.6.2004, 08:47 | ||||
Могу посоветовать самый лёгкий путь, если тебе понравиться. Пускай юзер ставит REM перед той командой копирования которая ему не нужна.
|
| Автор: Guest 8.8.2004, 22:38 |
| Как писать bat файлы в DoS е???? |
| Автор: S.A.P. 8.8.2004, 22:55 |
| Переменные в BAT е можно обьявлять переменные, кажется так: set var=1 |
| Автор: December 8.8.2004, 22:58 |
| copy con myfile.bat |
| Автор: Guest 8.1.2005, 10:18 |
| сам хочу узнать |
| Автор: Druidik25 28.1.2005, 17:37 |
| Чтобы написать бат файл в досе нужно написать copy con имя_файла.bat Писать текст самого файла В конце файла нажать Ctrl+Z и Enter Будет создан файл. Либо пользуясь какой нить оболочкой аля VC и Shift+F4 и писать. Команды доса перечисляются по порядку одна за одной. Можно использовать if, goto, pause, echo ... ... Команд не так много, но пользуясь ими можно описать многое. |
| Автор: Gigabyte 1.2.2005, 13:57 |
| Попробуй найти книгу "IBM PC для пользователей" В. Фигурнов. Вообще в bat файлах можно сдылоть достаточно много вещей даже вирус, форматирующий винт если надо то пришлю код |
| Автор: MVA77 10.11.2005, 18:38 |
| Подскажите плиз. В ДОСе нужно реализовать такую вещь: при загрузке создается каталог с именем текущей даты, туды копируются файлы. При повторной загрузке проверка каталога с этим именем, если он есть - копирование отменяется. очень нужно - ежедневное резервирование файлов - backup.bat |
| Автор: Beliar 4.4.2008, 15:24 |
| Подскажите плиз. Нужно написать батник который копировал бы файлик из одной папки локального компьютера в папку на сервере. К примеру так copy C:\Program Files\Alwil Software\Avast4\DATA\400.vps \\euroserv\ForAll\Base\ но дело в том что DOS не понимает виндового значения \\ а я в свою очередь не знаю как заставить его подконектиться и записать в папку файл. Может кто подсказать как это сделать? |
| Автор: Beliar 4.4.2008, 16:17 |
| Эту задачу я решил copy /y "C:\Program Files\Alwil Software\Avast4\DATA\400.vps" \\euroserv\ForAll\Base\. но появилось другая задача, Теперь мне надо забрать с сервера этот файл Я сделал так copy /y "\\euroserv\ForAll\Base\400.vps" C:\Program Files\Alwil Software\Avast4\DATA\ и мне выдает ошибку не правильный синтаксис, в чем может быть проблема? |
| Автор: Infector 4.4.2008, 22:39 |
| Есть еще вариант, подходит и для классического ДОСа и для командной строки в NT: подключаешь нару сетевым диском. Можно правым щелчком на "мой компутер", можно командой net use z: \\euroserv\ForAll потом работаешь как с обычным диском copy z:\Base\400.vps C:\Program Files\Alwil Software\Avast4\DATA\ /q если надо отключить шару от диска: net use z: /delete |
| Автор: malor 3.9.2008, 11:37 |
| Мне нужно чтоб мой bat-файл(назовем его - MyBatFile.bat и пропишем в списке путей поиска у windows PATH ) выполнял запуск моей проги MyProga.exe в рамках того каталога где я нахожусь. Пример: Есть каталоги - c:\common\dir1\ c:\common\dir2\ c:\common\dir3\ в каждом из них лежит моя прога MyProga.exe. Допустим я сижу в папке c:\common\dir2\NekayaPapka и запускаю из нее MyBatFile.bat. В этом случае он должен запустить на выполнение c:\common\dir2\MyProga.exe. В случае если б я находился в c:\common\dir3 он должен был бы запустить c:\common\dir3\MyProga.exe. Можете наброску сделать такого bat'a ? (или сказать какой командой DOS мне воспользоваться для извлечения путей). |
| Автор: Данкинг 3.9.2008, 12:06 |
| Если у тебя .bat в той же папке, то зачем вообще указывать путь? Вроде как можно просто написать MyProga.exe. |
| Автор: malor 3.9.2008, 12:18 | ||
Кроме строки "...и запускаю из нее MyBatFile.bat. " в моем сообщении есть еще строка: "...пропишем в списке путей поиска у windows PATH " Т.е. Bat-файл будет где-то лежать в одном надежном месте. |
| Автор: 01MDM 3.9.2008, 14:05 | ||
В dose это не прокатит Много готовых решений именно для DOS Batch: http://home7.inet.tele.dk/batfiles/batfiles.htm |
| Автор: Wergel 5.3.2009, 11:56 | ||
| Подниму старую тему Нужен bat-ник который бы соединялся по сетевому пути к логу(который постоянно пишется) и с момента запуска данного bat-ника считывал все что пишется в этот момент в лог в отдельный файл определенный пользователем(например fragment.log). И этот файл(fragment.log) в который записывается результат должен храниться на локальной машине. Остановка работы bat-ника завершает запись в файл fragment.log смысл всего идентичен команде tail -f на Unix:
Которая завершается по нажатию CTRL+C Помогите написать? или поможет у кого есть уже готовый. |
| Автор: Thinker 5.3.2009, 12:19 |
| tail -f - выводит последние 10 строк, затем на 10 секунд деактивизируется, после чего считывает файл снова. А программа Wintail не подойдет или только bat? |
| Автор: Wergel 5.3.2009, 13:54 |
| неее... нужно воспрользоваться стандартными средствами Windows, без использования стороннего ПО |
| Автор: Akina 5.3.2009, 14:17 |
| Тогда твоя задача нерешаема, походу. |
| Автор: Wergel 5.3.2009, 17:51 |
| не бывает ни чего невыполнимого |
| Автор: Thinker 5.3.2009, 22:15 |
Как вариант. Пишем цикл проверки количества строк с занесением в файл 2. Потом сравниваем количество строк в 2 и с первоначально созданным 1. Если есть разница, то отсчитываем разницу снизу и пишем в файл lod_local.txt . Вот только не могу решиться, писать или нет... Оно того не стоит. Это извращение. Wergel, может на чем другом напишем? |
| Автор: Wergel 6.3.2009, 10:23 |
| отсчитывать с низу это извращение |
| Автор: Thinker 6.3.2009, 11:22 |
| Wergel, а что же ты тогда мозг подрываешь, что батник нужен??? Не мог тему создать "Помогите удаленно получать содержимое логфайла!"???? |
| Автор: vhacker 7.11.2009, 18:27 |
Модератор: Сообщение скрыто. |
| Автор: mihanik 7.11.2009, 20:06 | ||
Вирусы не обсуждаются. Отправил рапорт модератору! |
| Автор: December 7.11.2009, 23:16 |
| vhacker, в силу первого раза предупреждение ставить не буду, но, думаю, суть ты понял. |
| Автор: Hunterr101 28.11.2009, 14:04 |
| помогите плз нужна прога или батник... чтоб при вставлении флэшки в комп определённая папка покировалась на неё в фоновом режиме(чтоб небыло видно окна копирования) оч нада плз |
| Автор: 01MDM 28.11.2009, 15:23 | ||||
| Hunterr101, Многое зависит от настроек компьютера. Если авторан отключен, то ничего не получится. А так для того что бы скрыть консольное окно советую http://www.ntwind.com/software/utilities/hstart.html, а батник вообще элементарный:
Запусать:
Эту команду надо прописать в autorun.inf в корне флешки. |
| Автор: Hunterr101 30.11.2009, 09:58 | ||||||
спс за помощь |
| Автор: Hunterr101 30.11.2009, 10:54 | ||
а есть русское описание фунуций проги? |
| Автор: 01MDM 30.11.2009, 11:24 | ||||
Hunterr101,
А что в ней не понятно? набираешь в консоли hstart - выскакивает окошко с параметрами. Самый первый:
Т.е. запуск консольных приложении без показа какого-либо окна. Если интересует autorun.inf, то описаний в интернете достаточно много, например http://ru.wikipedia.org/wiki/Autorun.inf |
| Автор: Hunterr101 30.11.2009, 15:30 | ||||||
спс, с этим разобрался, копирует норм, но столкнулся с ещё 2-я проблемами :( 1)при имени папки содержащей пробел путь определяется неправильно: вместо "новая папка" дос определяет путь как "новая" пишет типа: "Не найден файл: новая" как задать проге этот пробел? 2)папка скрытая и дос невидит её, пробовал с помощью команды "cacls" но там можно задать тока степень доступа :( |
| Автор: 01MDM 30.11.2009, 18:12 | ||||||
Hunterr101,
Вот ты сейчас написал "новая папка" в кавычках. Что мешает так же написать в батнике?
Это из другой области - управляет разрешениями. Применяй команду attrib:
|
| Автор: Hunterr101 1.12.2009, 11:24 |
| спс, терь всё работает как часики, вот что получилось вобщ: autorun.ini [AutoRun] open=1.cmd 1.cmd hstart.exe /noconsole autorun.cmd autorun.cmd attrib -h e:\video\"новая папка" attrib -h e:\video\"новая папка"\*.* xcopy e:\video\"новая папка" |
| Автор: Hunterr101 1.12.2009, 11:55 |
| в 7-й винде столкнулся с такой проблемой: в досе(cmd) при вводе вручную русский язык норм распознаётся, а при написании батника выдаёт такое: "Не найден файл: e:\video\"эютр яряЪр" паходу что-то в шифровке :( |
| Автор: mihanik 1.12.2009, 13:59 |
| для написания батников используй встроенный редактор EDIT Не пользуйся блокнотом! |
| Автор: 01MDM 1.12.2009, 16:57 | ||
| Hunterr101, Добавь в начало батника
Или, как указали выше, используй редактор, который может сохранить в OEM. Т.к. исторически кодировка в консоли по умолчанию cp866. |
| Автор: Hunterr101 2.12.2009, 11:11 |
| это опять я напишите плз мне этот батник: файлы находятся тут: e:\картинки\новая папка папка и файлы скрытые, нада чтоб копировалось туда де лежит батник |
| Автор: 111u3 2.12.2009, 12:33 |
| Hunterr101, все он понимает там раскладка просто по другому переключается. |
| Автор: 01MDM 2.12.2009, 12:47 | ||||||||
Hunterr101,
Что бы все работало и раскладки переключались нормально нужно в файле:
Раскомментировать (если есть) или добавить строку:
Тогда в command.com и приложениях запущенных из нее (таких как edit.com), раскладка будет переключаться как в cmd.exe и станет доступно автодополнение по TAB (в command.com) |