optron
Гость
|
|
« : 18-05-2006 11:33 » |
|
Бяда с этими BAT файлами - Задача на дискете находится программа в arj - архиве. следует выполнить операции: 1. Создать на диске с каталог ну, положим temp000 2. Перекинуть содержимое дискеты в этот каталог 3. Распаковать файлы в том каталоге 4. сделать каталог текущим 5. Запустить программу (ехе-шник) 6. Дождаться выполнения программы и стереть всю директорию.
Так вот, оказывается в ВИН98 и в ВИН ХР различные ВАТ-команды. А как сделать, чтобы ВАТник работал и там и там?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #1 : 18-05-2006 11:41 » |
|
Так вот, оказывается в ВИН98 и в ВИН ХР различные ВАТ-команды. А как сделать, чтобы ВАТник работал и там и там?
список команд в студию
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Sla
|
|
« Ответ #2 : 18-05-2006 11:44 » |
|
md copy arj x cd ... del чего нет?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #3 : 18-05-2006 12:22 » |
|
чего нет? rd а для копирования каталогов лучше xcopy (если она есть, ибо отдельная программка, а не команда shell).
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Sla
|
|
« Ответ #4 : 18-05-2006 13:02 » |
|
rmdir - по-моему есть но даже если нет, то приведенный список вполне подходит под задачу
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
optron
Гость
|
|
« Ответ #5 : 18-05-2006 14:14 » |
|
Да, так то так, только 1) ключи у команд в 98 и ХР - разные 2) start /wait в 98 не ждет окончания процесса и пытается удалить программу до того, как она закончится
вот, короче ВАТник.
set path=c:\test001 cd c:\ mkdir test001 cd a:\ arj e /y prog.arj c:\test001\ chdir /d c:\test001 test.exe del c:\test001\*.*
в ХР - ноу проблем, в 98 - не работает.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #6 : 18-05-2006 14:39 » |
|
rem set path=c:\test001 не понимаю зачем переназначать путь? mkdir c:\test001 arj e /y a:prog.arj c:\test001\ chdir /d c:\test001 start /wait test.exe del c:\test001\*.* del c:\test001
нет 98 под рукой, но помню хорошо что start /wait или что-то подобное там есть
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #7 : 18-05-2006 14:40 » |
|
start /wait В XP и Server 2003, если управление возвращается в shell не дожидаясь завершения запущенного процесса, я делаю так - помогает. Думаю, что аналогичное поведение у command и в 98.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #8 : 18-05-2006 15:28 » |
|
а у меня start /w test.exe - исправно работает на 98 и XP
|
|
|
Записан
|
|
|
|
optron
Гость
|
|
« Ответ #9 : 19-05-2006 04:22 » |
|
странно, 3 машины обошел. Ну да ладно, а вот интересно можно ли прочитать версию винды в том же ВАТнике и исходя из этого выполнять те или иные команды?
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #10 : 19-05-2006 04:52 » |
|
можно ли прочитать версию винды в том же ВАТнике и исходя из этого выполнять те или иные команды? Приведи пример, в каком случае необходимо в BAT-файле знать версию Windows. Если ты про cmd и command, то глобальная переменная COMSPEC ещё начиная с DOS содержит полный путь к текущему интерпретатору команд. Аналогично с системными папками. Что же касается специфичных задач администрирования или сложных скриптов обработки, то для их исполнения BAT-файлы не используются как устаревшие - имеются более новые и мощные средства WSH-скриптов.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
optron
Гость
|
|
« Ответ #11 : 19-05-2006 08:32 » |
|
Вот как отрабатывает Вин98: mkdir c:\test001 cd a:\ arj e /y prog.arj c:\test001\ c:\test001\ start /wait test.exe chdir a:\ del c:\test001\*.* rmdir c:\test001
а задача состоит в том, что за компами сидят очень тупорылые юзеры и разбираться с ОС никто не будет.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #12 : 19-05-2006 09:15 » |
|
Вот как отрабатывает Вин98: mkdir c:\test001 cd a:\ arj e /y prog.arj c:\test001\ c:\test001\ start /wait test.exe chdir a:\ del c:\test001\*.* rmdir c:\test001
а задача состоит в том, что за компами сидят очень тупорылые юзеры и разбираться с ОС никто не будет.
это не задача, это проблема а слабо test.exe засунуть в автозагрузку?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
optron
Гость
|
|
« Ответ #13 : 19-05-2006 10:40 » |
|
Представляешь ситуацию - создается выездная комиссия по тестированию удаленного отдела. тестовая программа на дискете, но программа большая,(ну не влезает на 3'', поэтому запакована. Программера с собой не берут. Сами тоже распаковать не смогут по причине слабых знаний. Остается одно - распаковывать ВАТ-ником.
|
|
« Последнее редактирование: 19-12-2007 19:53 от Алексей1153++ »
|
Записан
|
|
|
|
RXL
|
|
« Ответ #14 : 19-05-2006 14:54 » |
|
optron, а CD не подойдет?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kivals
|
|
« Ответ #15 : 19-05-2006 15:14 » |
|
набери в ХР комманду SET вывалится список переменных выбери из них одну, которой точно нет в 98 (например - OS, UserName, UserDomain) - какая тебе больше по душе далее так: if #%OS%#==## then goto Win98 rem батник для WinNT ... goto EndIf :Win98 rem батник для Win98 ... :EndIf Возможно где-то ошибся в синтаксисе - писал по памяти, но смысл думаю понятен
|
|
|
Записан
|
|
|
|
optron
Гость
|
|
« Ответ #16 : 22-05-2006 04:35 » |
|
Thank's, попробую
|
|
« Последнее редактирование: 19-12-2007 19:55 от Алексей1153++ »
|
Записан
|
|
|
|
|