Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Старый софт »   Неправильный батник
RSS

Неправильный батник

<<Назад  Вперед>> Страницы: 1 * 2
Печать
 
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
[q]
командой if нельзя проверить существование _каталога_
[/q]
Почему нельзя? Можно. По крайней мере, в DOS из состава WinXP.
А вот переименовывать каталоги командой ren нельзя. DosX, воспользуйтесь командой move папка1 папка2
Вот пример батника, который у меня работает:
@echo off
if exist most goto a
if exist most-1 goto b
exit
:a
move most most-1
exit
:b
move most-1 most
exit
0leg
Advanced Member


Откуда: Город-герой Тула
Всего сообщений: 1991
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 окт. 2007
uav1606, согласись, было бы странно в разделе _Старый_ софт спрашивать про WinXP...

> А вот переименовывать каталоги командой ren нельзя
А в FreeDOS можно! :-P И в оболочке DosBox'а тоже.
ansi
Advanced Member


Откуда: Минск
Всего сообщений: 1273
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 нояб. 2007
Просто я написал два батника, которые выполняют эту необходимую для меня задачу. А мне хотелось чтобы не выбирать батники, а они сами угадывали, что мне нужно делать.
Эти батники и правда мне нужно выполнять из под WinXP, т. к. я на работе.
Мои батники (работают):
@echo off
ren most most-1

обратно:
@echo off
ren most-1 most
ansi
Advanced Member


Откуда: Минск
Всего сообщений: 1273
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 нояб. 2007
Я что-то не припоминаю в какой версии DOS появилась команда MOVE, по-моему она была внутренней, точно помню что вроде в DOS 6 таковая существовала :(
0leg
Advanced Member


Откуда: Город-герой Тула
Всего сообщений: 1991
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 окт. 2007
dosX,
> Я что-то не припоминаю в какой версии DOS появилась команда MOVE,
Вроде бы в MS-DOS 5.0 её нету... Хотя могу ошибаться.

> по-моему она была внутренней,
Нет, внешней.

> точно помню что вроде в DOS 6 таковая существовала
Да, существовала.
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
Вроде бы команда move существует начиная с MS-DOS 6.0.
Командой ren каталоги нельзя переименовывать во всех версиях MS-DOS - т.е. от Microsoft.
Насчёт if exist - извиняюсь, действительно, похоже, что в MS-DOS 6.22 так действительно можно проверить только существование файла, но не каталога. Т.е. нужно использовать Ваш, Oleg, способ. А в DOS'е из Windows XP можно и то, и то.

Кстати, из-под чистого MS-DOS команда exit в пакетных файлах не работает. Т.е., скажем, из Volkov Commander или консоли Windows XP работает, а из чистого MS-DOS - нет. Нужно сделать в конце батника метку, скажем, :end и вместо exit писать goto end .
UFO
Гость


Всего сообщений: 5443
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
12 дек. 2006
uav1606 написал:
[q]
Кстати, из-под чистого MS-DOS команда exit в пакетных файлах не работает.
[/q]
Работает, но не всегда.
В частности, поведение команды exit в пакетных файлах зависит от того, каким образом был запущен командный интерпретатор command.com. А именно (из справки, выдаваемой командой help exit):

Using EXIT with the command interpreter

When you use the MS-DOS COMMAND command to start a new instance of the command interpreter, you can use the EXIT command to return to the old command interpreter. Also, while running some programs, you can run the MS-DOS command interpreter and then use the EXIT command to return to your program. For more information about command interpreters, see the >COMMAND> command.

If you are not using the /P (permanent) switch with the inital copy of COMMAND.COM, the EXIT command quits the command interpreter. You must then specify at the command prompt the location of the COMMAND.COM file to start the command interpreter again.

Using exit when the command program is loaded as permanent

If you start the COMMAND.COM program with the /P (permanent) switch, the EXIT command has no effect.



И немного из описания COMMAND.COM:

Starts a new instance of the MS-DOS command interpreter.

A command interpreter is a program that lets you type commands. Use the EXIT command to stop the new command interpreter and return control to the old one.

In your CONFIG.SYS file, use the following syntax:

SHELL=[[dos-drive:]dos-path]COMMAND.COM [[drive:]path][device] [/E:nnnn] [/P [/MSG]]

Switches

/P
Should be used only when COMMAND is used with the SHELL command in the CONFIG.SYS file. The /P switch makes the new copy of the command interpreter permanent. In this case, the EXIT command cannot be used to stop the command interpreter. If you specify /P, MS-DOS runs your AUTOEXEC.BAT file before displaying the command prompt. If there is no AUTOEXEC.BAT file in the root directory of the startup drive, MS-DOS carries out the DATE and TIME commands instead. If you do not have a SHELL command in your CONFIG.SYS file, COMMAND.COM is automatically loaded from the root directory with the /P switch.

uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
В общем, даже если запустить command.com без параметра /P, то хоть exit и будет работать, но не совсем так, как надо, т.к.:
1. Если command.com грузится через shell=command.com - т.е. без ключа /P, то не выполняется autoexec.bat
2. После команды exit в bat-файле выводится надпись
The following file is missing or corrupted: A:\COMMAND.COM
и происходит загрузка command.com стандартным образом, а потом автоматически запускается autoexec.bat 8-|
Это по результатам экспериментов с MS-DOS из состава Win98.
Так что лучше всё-таки избегать использования exit в bat-файлах.
А по умолчанию command.com запускается как раз с ключём /P .
<<Назад  Вперед>> Страницы: 1 * 2
Печать
Полигон-2 »   Старый софт »   Неправильный батник
RSS

0 посетителей просмотрели эту тему за последние 15 минут
В том числе: 0 гостей, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS