|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Подстановка большого количества параметров. |
|
|
CMD/BAT - Подстановка большого количества параметров.
|
Новый участник Сообщения: 6 |
Профиль | Отправить PM | Цитировать Всех с наступающим!
Народ, подскажите пожалуйста, как реализовать? Есть некая программа, и куча файлов. Нужно, чтобы батник запускал эту программы в виде: programm.exe blabla.txt blabla1.txt .... blabla999.txt. то есть чтобы батник запускал программу с параметрами в виде имен файлов(с расширением) разделенными через пробел. Как я понимаю, самый простой способ, это использовать %1-%9, но этих переменных всего девять... (не считая нуля) а файлов, зачастую, куда больше. вот такое вот наваял: Таким образом, я получаю файл с нужным мне текстом, так как конкатенации строк, как я понимаю в батах нет.(Может я все-таки ошибаюсь?) Все было бы замечательно, но. Почему-то Echo записывает не только название файла, но и зачем-то добавляет в конец символ конца строки. И того у меня выходит файл с построчно выведенными именами файлов, а считать можно только одну строку.. Итак вопрос: как считать весь файл в переменную? Или может не стоит даже заморачиваться с файлом, а можно сделать проще? Заранее спасибо |
|
Отправлено: 14:50, 29-12-2011 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Zeneth:
|
|
Отправлено: 15:05, 29-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Как интересно, спасибо за быстрый ответ.
Но тогда возникает другой вопрос: как же это использовать? Почему-то запись %~nx* не работает. Как-то иначе можно использовать? И более того, если в %* все параметры, то там и %0?. А %0 - это это имя бат файла. Оно мне точно не нужно |
Отправлено: 15:22, 29-12-2011 | #3 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Zeneth:
Цитата Zeneth:
test.bat blabla1.txt blabla2.txt blabla3.txt blabla4.txt blabla5.txt blabla6.txt blabla7.txt blabla8.txt blabla9.txt blabla10.txt blabla11.txt blabla12.txt blabla13.txt blabla14.txt Цитата Zeneth:
Можно запустить и так: test.bat "blabla1.txt blabla2.txt blabla3.txt blabla4.txt blabla5.txt blabla6.txt blabla7.txt blabla8.txt blabla9.txt blabla10.txt blabla11.txt blabla12.txt blabla13.txt blabla14.txt" |
|||
Отправлено: 15:37, 29-12-2011 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Понятно, спасибо.
Но все-же.. проблемы это не решает пока... Дело в том, что файлов очень много. Следовательно запуск батника с параметрами - это тупо перетаскивание всех файлов на сам батник. Если сделать так, то в %* содержатся все те файлы с путями. запись %~nx* не работает. сделать так: test.bat blabla1.txt blabla2.txt blabla3.txt blabla4.txt blabla5.txt blabla6.txt blabla7.txt blabla8.txt blabla9.txt blabla10.txt blabla11.txt blabla12.txt blabla13.txt blabla14.txt programm.exe blabla1.txt blabla2.txt blabla3.txt blabla4.txt blabla5.txt blabla6.txt blabla7.txt blabla8.txt blabla9.txt blabla10.txt blabla11.txt blabla12.txt blabla13.txt blabla14.txt есть еще варианты? |
|
Отправлено: 16:07, 29-12-2011 | #5 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата Zeneth:
Цитата Zeneth:
И зачем тогда передавать эти имена в ком строке батнику, если их можно получить в самом батнике и сразу же запустить исполняемый файл с ними. Может так? |
||
Последний раз редактировалось gora, 29-12-2011 в 16:29. Отправлено: 16:20, 29-12-2011 | #6 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Цитата:
Цитата:
Может я не понимаю чего-то очевидного? |
||
Отправлено: 16:36, 29-12-2011 | #7 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Цитата:
Если не сложно, подскажите, что это за SetLocal enabledelayedexpansion? и вот эта запись: allfiles=!allfiles! %%~nxe - это как я понимаю - дописывание к строке.... почему-то у меня не получалось... В любом случае, большое спасибо! |
|
Отправлено: 17:01, 29-12-2011 | #8 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Цитата:
и имена лучше брать в кавычки, потому что в них м.б. пробелы и др. спецсимволы, которых в batch'e туёва хуча |
|
Отправлено: 17:51, 29-12-2011 | #9 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать Цитата Zeneth:
@echo off setlocal for %%e in (*.xyz) do if not defined allfiles (Set allfiles="%%~nxe") else (Call Set allfiles=%%allfiles%% "%%~nxe") Echo programm.exe %allfiles% Pause |
|
Отправлено: 18:07, 29-12-2011 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Проблема с просмотром большого количества файлов в explorer | Pikki-pikki | Microsoft Windows 2000/XP | 8 | 30-05-2021 00:24 | |
Разное - [решено] Установка большого количества жестких дисков. | KPACHbIu | Накопители (SSD, HDD, USB Flash) | 2 | 15-06-2011 14:31 | |
Интерфейс - [решено] Переименование большого количества файлов | 7human7 | Microsoft Windows 2000/XP | 7 | 22-11-2008 09:48 | |
Flash - Проблема копирования большого количества файлов в корневой каталог флешки | SANIOK_AV | Накопители (SSD, HDD, USB Flash) | 2 | 05-09-2008 11:43 | |
Разное - IE зависает при открытии большого количества вкладок | multy | Microsoft Windows Vista | 2 | 11-10-2007 14:25 |
|