Переношу досовские батники на XP, напоролся на странное поведение:
-------
D:\>IF EXIST D:\zzzzz\*.* echo bug
bug
-------
папка d:\zzzzz существует и пуста.
Так то же самое:
-------
D:\>IF not EXIST D:\zzzzz\*.* (pause) else (echo bug)
bug
-------
повторяется на XP/SP2 и NT4.0/SP6a
Я то конечно у себя это обойду, НО - как тогда можно узнать присутствуют ли в директории файлы?
With best regards, Denis Kurochkin. E-mail: d...@cbsd.donetsk.ua
"Denis Kurochkin" <d...@cbsd.donetsk.ua> wrote in message
news:dnml2p$e5l$1...@linux9.udc0.cbsd.donetsk.ua...
SM> это не ошибка, это фича.В NT всегда есть файлы . и .. Зачем - не знаю.
Они и в DOS-е всегда были, кроме корневого каталога.
"." - текущий каталог, ".." - каталог на уровень вверх.
С уважением, Константин Монтеграсс
Администратор сети ООО "ЛУКОЙЛ-ПЕРМНЕФТЕОРГСИНТЕЗ"
e-mail: mo...@npz.perm.lukoil.com
ICQ: 10992260
SM>> это не ошибка, это фича.В NT всегда есть файлы . и .. Зачем - не знаю.
K> Они и в DOS-е всегда были, кроме корневого каталога.
K> "." - текущий каталог, ".." - каталог на уровень вверх.
Понятно.
Тогда как определить есть ли в директории хотя бы один "настоящий" файл ?
SM>>> это не ошибка, это фича.В NT всегда есть файлы . и .. Зачем - не знаю.
K>> Они и в DOS-е всегда были, кроме корневого каталога.
K>> "." - текущий каталог, ".." - каталог на уровень вверх.
DK> Понятно.
DK> Тогда как определить есть ли в директории хотя бы один "настоящий" файл
DK> ?
Возможно дурной вариант, но вроде рабочий:
---------------------------------cut---------------------------------
set notempty=0
for %%i in (*) do set notempty=1 && goto aa
:aa
echo %notempty%
---------------------------------cut---------------------------------
правда, подкаталоги пропускаются, проверяется только наличие файлов. Наверно
можно как-то изящнее, но думать совершенно лень :)
Regards. Mike.
np: тишина, наверно Apollo забыл загрузить...