Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Доброго времени суток. Пытаюсь сделать удобную программу для прошивки модулей , так вот, версий прошивок много, расположение на диске очень разное, файлы для запуска прошивок используются *.cmd. Содержимое .cmd файлов: программа для прошивки, параметры, файл данных. Все файлы на которые ссылается .cmd расположены в той же папке где и сам .cmd файл. При запуске файла .cmd по кнопке с помощью RUN (где указан полный путь к файлу) в окне видно что путь к выполняемым файлам это путь к проекту NB. Другими словами операция не заканчивается успешно. Вопрос - что я делаю не так?
вот пример кнопки: Run "![Name_[nomerV]]" "" "RunOnce" "" ""
[Name_[nomerV]] - переменная содержит полный путь с именем файла
Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
а действия в cmd нельзя в проекте повторить, чтобы без лишнего барахла?
дело в том что как самих модулей так и версий к ним очень мнооого, а так же не ко всем используют cmd, в некоторых сторонние программы, специализированные к определенным процессорам. Программе моей нужно самостоятельно указать файлы для прошивки каждого модуля и для каждой версии (прога не тока для меня пишется, а у всех на компах черт ногу сломит где что лежит, полный бардак ) И еще, папки с прошивками валяются прям на рабочем столе (кстати может в том тоже проблема?)) Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Разберусь - отпишусь, если не, тем более Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Вполне возможно что ошибка сдесь [Name_[nomerV]] Что такое [Name_] и что такое [nomerV]?
[nomerV] это переменная которая содержит цифру от 1 до 10 , и определяет номер версии прошивки в итоге переменные [Name_1], [Name_2], ...[Name_10] содержат в себе путь к файлу для прошивки, например C:\Documents and Settings\user\Рабочий стол\папка с прошивками\папка модуля\файл.cmd Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
изменять сам cmd нет возможности, их много, и прога под разных людей делается, нужно как то прописать рабочий путь cmd при запуске, чтоб эта прошивка понимала, будто она через открытый проводник со своей директории стартует Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Videomonstr, смд с параметрами стартует? я это к тому, что у меня тоже был аналогичный сабж. Причина оказалось в параметрах, вернее в тех, где использовались пути. Когда я пути взял в кавычки, то проблема исчезла.
Добавлено (31 Март 2011, 22:03) --------------------------------------------- На крайни случай сделай тестовую версию цмд. Например запуск калькулятора и саму цмд поставь на паузу(!), если вдруг ошибка, то хоть успеть прочитать
Сообщение отредактировано Сергей - Чт, 31 Марта 2011, 22:01
Добавлено (01 Апрель 2011, 14:12) --------------------------------------------- Проблема осталась, вот cmd приблизительно: avreal32.exe +тут чегото -и тут -и тут -тут _low=EF,_high=CF if errorlevel 1 goto :stop avreal32.exe +тут чегото -и тут -тут тоже имя файла с данными.расширение -еще чегото if not errorlevel 1 goto :beep :stop pause :beep exit
Так вот путь к имени файла с данными тут отсутствует, поскольку все эти файлы- avreal32.exe , CMD, и пр. находятся в каждой папке с прошивками. В итоге avreal32.exe запускается с указанием пути места нахождения проекта NB, и найти файл с данными по этому пути программа конечно не может. Т.о. прошивка модуля не происходит. Вопрос такой, раз не получается в команде RUN указать рабочую папку для запускаемого приложения, остается только одно, поскольку на рабочих машинах стоит XP, использовать для запуска приложений встроенное в XP приложение "Выполнить". Я проверил, при запуске оттуда файла CMD (полный путь с именем файла) рабочей папкой назначается указанный путь, в результате прошивка проходит успешно! Остается простой вопрос - как называется запускаемый приложение "Выполнить" файл в ВинXP, кто знает, подскажите!
Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
теперь проблема понятна. действительно, если в cmd запускается прога без указания полного пути к ней, полагая что она в одной папке с cmd, то при запуске run "test.cmd" команда не находит файл программы. Решение: нужно после открытия консоли выполнить команду cd до папки расположения cmd, прописав ее в первой строчке файла. Но это мало осуществимо, т.к. пути на разных системах могут быть неизвестны.
Вот вам функция аналог Run, но с возможностью установки рабочей папки и статуса окна приложения.
Call "Run" "[App]" "[Dir]" "[Status]"
[App] - полный путь к приложению [Dir] - рабочая папка [Status] - вид окна приложения (0-скрытое, 1-видимое, 2-свернутое, 3-развернутое и пр...)
Пример: Call "Run" "c:\folder\test.cmd" "c:\folder" "1" Обработки ошибок нет, так что позаботьтесь чтобы все пути существовали на любых системах.
Супер! Спасибо! я бы до такой функции точно б не догадался! Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...