Вверх ↑
Этот топик читают: Гость
Ответов: 13
Рейтинг: 0
#1: 2016-08-11 19:01:06 ЛС | профиль | цитата
Добрый день. Я сам не программист, но понадобилась довольно простая утилита. Что бы открывалось окно с кнопками, по нажатию которых запускался бы нужный мне .bat файл, и он бы уже сам все свои дела делал. Прочитал много всего, и вроде получилось. И тут же возникла проблема. Долго вожусь с ней.

Есть файл copy.bat и рядом с ним папка files. В папке один файл 1.mp3
В .bat файле прописано вот что:
copy files\1.mp3 files\2.mp3
copy files\1.mp3 files\3.mp3
copy files\1.mp3 files\4.mp3
copy files\1.mp3 files\5.mp3

Т.е. я его запускаю и по и итогу у меня в папке files получаются 5 mp3 файлов, все ок.

Создаю в Hiasm кнопку, а от нее связь к WinExec. В параметре FileName ввожу copy.bat проверяю и все ок. Но это если проект Hiasm лежит в одной директории с этим .bat файлом. Но у меня то таких много планируется, соответственно я создаю поддерикторию (например test) и помещаю туда .bat файл и папку files. А в параметре FileName ввожу уже test\\copy.bat (и с одним слешем вводил). Тестю прогу, и ничего. Т.е. .bat файл вроде запускается, но он не копирует файлы. Причем если просто его запустить, то все ок. Связи от кнопки я по разному тоже делал, ничего не понимаю. Т.е. грубо говоря если все в одной папке лежит, то все ок, а если в поддиректории, то фейл.

карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#2: 2016-08-11 21:45:46 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2025-01-10 23:06:54
карма: 0

0
Ответов: 13
Рейтинг: 0
#3: 2016-08-11 22:39:37 ЛС | профиль | цитата
195.191.168.247 писал(а):
Возможно это поможет


Спасибо, но я и так использую "удвоенный \" да и папку tesе по разному именовал.

Тут еще вот что выяснил. Решил костыли сделать. Создал ехешник, назвал его kostyl.exe в котором прописал запуск copy.bat и они лежат в одной директории test Т.е. запуская kostyl.exe и жмакая в нем кнопку, copy.bat отлично запускается.
Далее я уже создаю главный ехе файл, в нем прописываю запуск файла test\\kostyl.exe, вроде работает, kostyl.exe запускается, но когда я в нем жму кнопку, опять ничего не происходит. Хотя если я его на прямую запускаю, то все ок, что за мистика ?


карма: 1

0
Ответов: 8948
Рейтинг: 824
#4: 2016-08-11 22:46:02 ЛС | профиль | цитата
Pudrikello, над полем ввода полезные ссылки, не гадать на кофейной гуще
карма: 19

0
Ответов: 163
Рейтинг: 33
#5: 2016-08-11 22:50:12 ЛС | профиль | цитата
Pudrikello, попробуй первой строчкой в bat файле прописать
cd /d %~dp0

карма: 3

0
Ответов: 13
Рейтинг: 0
#6: 2016-08-11 23:09:57 ЛС | профиль | цитата
Леонид, что прости ? Не совсем понял тебя)
GreM, спасибо, попробую)

карма: 1

0
Ответов: 8948
Рейтинг: 824
#7: 2016-08-12 09:51:32 ЛС | профиль | цитата
Pudrikello, вы на пальцах объясняете, лучше выложить схемку, виднее и понятнее.
карма: 19

0
Ответов: 13
Рейтинг: 0
#8: 2016-08-12 11:57:57 ЛС | профиль | цитата
Леонид, вот я залил http://forum.hiasm.net/forum_serv.php?q=56&id=4419 там все просто в принципе. v 1.0 это то что я в первом посте описал, а v 2.0 это уже то что я про костыль дополнил.
Удивляет то почему если я kostyl.exe запускаю напрямую, то все окей, а если я запускаю его через прогу (v 2.0.exe) он запускается, но не выполняет свою функцию.
Может когда запускаю через прогу, она запускаемый ехешник или bat файл, копирует куда то во временную папку и оттуда уже запускает, и поэтому ничего не работает, ведь суть же в том что бы они запускались из конкретных директорий.
карма: 1

0
Ответов: 817
Рейтинг: 52
#9: 2016-08-12 12:06:46 ЛС | профиль | цитата
195.191.168.247 писал(а):
Есть файл copy.bat

НИКОГДА не обзывай батники зарезервированными именами
Напиши в консоли copy /? и ты поймешь, что файл с таким именем уже есть и он находится в %SystemRoot%\System32\
Говорю не просто так, а из личного опыта.
карма: 1

0
Ответов: 13
Рейтинг: 0
#10: 2016-08-12 12:15:03 ЛС | профиль | цитата
-= DriveR =-, это я понял, но я по всякому называл. Проблема увы не в этом.
карма: 1

0
Ответов: 817
Рейтинг: 52
#11: 2016-08-12 12:31:00 ЛС | профиль | цитата
Pudrikello,
В батнике пиши так
copy %cd%\files\1.mp3 %cd%\files\5.mp3
карма: 1

0
Ответов: 13
Рейтинг: 0
#12: 2016-08-12 12:36:50 ЛС | профиль | цитата
-= DriveR =-, увы результат тот же. Если батник запускать напрямую то все отлично, а если через утилиту, то фейл.
карма: 1

0
Ответов: 817
Рейтинг: 52
#13: 2016-08-12 12:42:50 ЛС | профиль | цитата
Pudrikello,
Держи, у меня отработало как надо
code_37635.txt
Батник обзави "copy_file.bat"
внутри батника должно быть так
copy %cd%\files\1.mp3 %cd%\files\2.mp3
copy %cd%\files\1.mp3 %cd%\files\3.mp3
copy %cd%\files\1.mp3 %cd%\files\4.mp3
copy %cd%\files\1.mp3 %cd%\files\5.mp3
карма: 1

0
файлы: 1code_37635.txt [449B] [472]
Ответов: 13
Рейтинг: 0
#14: 2016-08-12 13:17:19 ЛС | профиль | цитата
-= DriveR =-, спасибо за помощь, но он вроде работает так же. Если программа лежит в одной папке с бат файлом, то все окей. Но если я выношу ехе файл на уровень выше, то снова ничего не работает, т.е. батник вроде запускается, но ничего не копирует. Путь к батнику в параметрах программы я меняю на test\\copy_file.bat Какой то парадокс((
карма: 1

0
Ответов: 817
Рейтинг: 52
#15: 2016-08-12 13:34:43 ЛС | профиль | цитата
Pudrikello,
Pudrikello писал(а):
Но если я выношу ехе файл на уровень выше

Выше это куда, что в твоем понимании "Выше"?
Если у меня все лежит в корне С:\ то куда выше то?
Нарисуй иерархию папок как должно быть или выложи скриншот на котором видно как ты хочешь
------------ Дoбавленo в 13.32:
Кажется я тебя понял
вот так хотел?
http://forum.hiasm.com/forum_serv.php?q=56&id=4420
------------ Дoбавленo в 13.34:
Да, забыл.
в батнике убери "Pause"
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)