Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 4

Автор: DDDK
Дата сообщения: 30.10.2007 10:17

Цитата:
Код:@Echo Off
Set cnt=0




А проще нельзя проверить - папка пуста или нет ?

Спасибо.
Автор: KapralBel
Дата сообщения: 30.10.2007 10:22
DDDK
Да и так не сильно сложно

Можно разными способами, но строк меньше не будет
Автор: king_stiven
Дата сообщения: 30.10.2007 10:36
DDDK
KapralBel
А если так?

Код: for /f %%d in ('dir d:\1\*.* /b /a:-d') do goto M1
Автор: Smitis
Дата сообщения: 30.10.2007 10:38
KapralBel
DDDK
Собственно, считать файлы не обязательно, достаточно определить, что есть хотя бы один файл

Код:
pushd d:\1
for %%f in (*) do goto m1
popd
....

:m1
popd
....
Автор: 01MDM
Дата сообщения: 30.10.2007 10:40
DDDK

Код:
@echo off
dir /b d:\1\*.* | findstr [a-zA-Z0-9] >nul
if not %errorlevel%==0 (echo folder is empty) else (echo files exist)
Автор: KapralBel
Дата сообщения: 30.10.2007 10:44
Smitis
Cогласен, и гораздо быстрее на папках с большим количеством файлов...

Конкурс? кто короче напишет?
Автор: Smitis
Дата сообщения: 30.10.2007 10:45

Цитата:
Конкурс? кто короче напишет?

Самый короткий у меня
Автор: KapralBel
Дата сообщения: 30.10.2007 10:59
Smitis
Ы?

Код: @echo off
dir /b D:\1 |findstr /r .
If ErrorLevel 1 (Echo Empty) Else (Echo Exist)
Автор: Elroir
Дата сообщения: 30.10.2007 11:10
KapralBel
У меня нечто похожее:

Код:
(dir d:\1\ /a-d 1>nul 2>&1)&&echo Exist||echo Empty
Автор: Smitis
Дата сообщения: 30.10.2007 11:23
KapralBel
Одинаково!

Код:
dir /b/s 1 2>&1 | find/i"\" > nul && echo Not empty || echo Empty
dir /b 1 2>&1 | findstr/r . > nul && echo Not empty || echo Empty
Автор: 01MDM
Дата сообщения: 30.10.2007 11:27
Elroir
Почти тоже самое, не подсматривал

Код:
dir /b d:\1 | findstr .* >nul && echo Exist || echo not Exist
Автор: Smitis
Дата сообщения: 30.10.2007 11:36
KapralBel
Хотя, если не использовать ключ /r, через findstr короче

Код:
dir /b/s 1 2>&1 | find "\" > nul && echo Not empty || echo Empty
dir /b 1 2>&1 | findstr . > nul && echo Not empty || echo Empty
Автор: KapralBel
Дата сообщения: 30.10.2007 11:42
Smitis

Цитата:
если не использовать ключ /r

Не пройдет...
не обязательно будет файл с точкой в имени (например hosts)
Автор: 01MDM
Дата сообщения: 30.10.2007 11:45
KapralBel

Цитата:
не обязательно будет файл с точкой в имени (например hosts)


достаточно findstr .*
Это обозначает любой символ

Автор: KapralBel
Дата сообщения: 30.10.2007 11:53
01MDM
а я все думал, что рег. выражения только через /r
Автор: Smitis
Дата сообщения: 30.10.2007 11:57
Нифига

/l Использует заданную строку буквально.
/r Использует строку поиска как регулярное выражение.
Команда Findstr интерпретирует все метасимволы как регулярные
выражения, если не используется ключ /l.
. Подстановочный знак: любой символ

Достаточно найти один символ.
Но надо не забывать отфильтровывать ошибки dir "File Not Found"
Вот окончательные варианты:

Код:
dir /b/s папка 2>&1 | find "\" > nul && echo Not empty || echo Empty
dir /b папка 2>nul | findstr . > nul && echo Not empty || echo Empty
Автор: 01MDM
Дата сообщения: 30.10.2007 12:00
KapralBel

/r , как я понял, используется если литеральные символы надо представить в качестве метасимволов рег. выражения
Автор: AlessTO
Дата сообщения: 30.10.2007 19:56
2 all
Касаемо моей проблемы удаления дублей (обозначенной тут и тут)
была перерыта масса..ссылок.. самым быстрым признан php-скрипт

Код: <?php
file_put_contents('new.txt',implode("",array_unique(file('text.txt'))));
?>
Автор: Tipulatoid
Дата сообщения: 31.10.2007 05:44
all
Можно ли как-то узнать название подключения к Интернету по умолчанию? в файле rasphone.pbk много чего интересного, но такого параметра я не нашел.
Т.е. названия там есть, конечно, но параметра что именно это подключение по умолчанию, похоже, что нет
Автор: Maza Faka
Дата сообщения: 31.10.2007 07:13
Tipulatoid
А разве по умолчанию существует подключение к интернету?
Автор: Tipulatoid
Дата сообщения: 31.10.2007 07:37
Maza Faka
Ну, если нажать Пуск -> Подключение то увидим список подключений, и в иконке одного из них присутствует галочка - это значит, что данное подключение считается подключением по умолчанию

Добавлено:
Нашел HKCU\Software\Microsoft\RAS Phonebook\DefaultEntry
Автор: GORA2
Дата сообщения: 01.11.2007 13:44
Как узнать размер каталога со всеми вложенными файлами и подкаталогами?
Делаю так:
Код: FOR /F "tokens=1-3" %%a IN ('dir "%~1" /-C /S /A:-D') DO (
    IF !flag!==1 SET dirsiz=%%c
    IF "%%b"=="файлов:" (SET flag=1) ELSE (SET flag=0)
)
Автор: KapralBel
Дата сообщения: 01.11.2007 13:48
GORA2
DirUse C:\Windows
из Windows Resource Kit
Автор: GORA2
Дата сообщения: 01.11.2007 14:28
KapralBel А без сторонних утилит ни как?
Автор: KapralBel
Дата сообщения: 01.11.2007 14:48
GORA2
См. свой предыдущий пост
или
Dir C:\Windows /s
и предпоследняя строка
Автор: NIKZZZZ
Дата сообщения: 01.11.2007 15:15
GORA2

Цитата:
А без сторонних утилит ни как?

Не совсем красиво, но можно проанализировать с помощью For результат работы
compact %catalog%\* /s /q /a
по строке
"Данные объемом 1 389 175 286 байт сохранены в 1 389 133 274 байт."

Автор: GORA2
Дата сообщения: 01.11.2007 16:26
NIKZZZZВаш вариант не проще получиться. Мне надо получить результат в переменную и без пробелов, а это лишняя возня.
Пока оставлю свой.

Всем спасибо.
Автор: root1976
Дата сообщения: 02.11.2007 02:00
Помогите горю!
Есть файл типа :
1111_???.123
необходимо переименовать в:
00_???W.123
где ??? трехзначное число которое менять не нужно.


Заранее спасибо!!!!!!
Автор: Elroir
Дата сообщения: 02.11.2007 02:20
root1976

Код: for /f "tokens=1* delims=_" %%a in ('dir /b /a-d 1111_???.123') do ren "%%a_%%b" "00_%%~nbW%%~xb"
Автор: Nagual
Дата сообщения: 02.11.2007 02:36
root1976
если юзаешь тотал командер, то маска переименования будет
00_[N6-]W

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.