![]() |
Нужен список файлов с именами в 8 знаков. Dir ????????.TXT выдает все .
Нужен список файлов с именами в 8 знаков. Dir ????????.TXT выдает все .
|
Код:
wmic.exe DataFile where "Drive='c:' and Path='\\Some\\Path\\' and Extension='txt' and FileName like '________'" get Name |
А без WMIC можно. Запуск батника не по админом будет.
|
Код:
dir /b *.txt|findstr.exe /r /c:"^........\.txt$" |
Результат не тот что надо. Файлы меньше 8 знаков в имени тоже попадают.
|
|
Нужны файлы только с 8 знаками в имени не больше не меньше.
работает только в тек каталоге, а если dir /s выдает все подряд. Вообщем задача была такая. Поиск текстовых файлов по по всему диску с: имена 8 знаков и копирование их в определенную папку на диск D:. Далее имеется файл со списком имен текстовых файлов. нужно их найти на диске с: и удалить. |
vangogru, видите, насколько важно формулировать полное ТЗ с самого начала, а не вспоминать об этом в середине обсуждения.
|
Код:
dir /b /s *.txt|findstr.exe /v /r /c:"^.*\\\\.......\.txt$" /c:"^.*\\.\\......\.txt$" /c:"^.*\\..\\.....\.txt$" /c:"^.*\\...\\....\.txt$" /c:"^.*\\....\\...\.txt$" /c:"^.*\\.....\\..\.txt$" /c:"^.*\\......\\.\.txt$" /c:"^.*\\.......\\\.txt$"|findstr.exe /r /c:"^.*\\........\.txt$" Код:
dir /b /s *.txt|findstr.exe /r /c:"^.*\\[^\\][^\\][^\\][^\\][^\\][^\\][^\\][^\\]\.txt$" |
Iska, Вот еще один рабочий монстр
Код:
@Echo Off |
Код:
@echo off |
megaloman, неплохо (только лишний пробел при echo затесался ;)). Я всё порывался длину имени считать.
kiripanda, я тоже так пробовал, но перемудрил со скобками, нагромождая их равно Пелион на Оссу, и в итоге у меня, увы, ничего из этого не вышло. А мой код в #9, к сожалению, некорректен — исключает некоторые файлы, которые должны были входить в набор. Жаль, что в «findstr.exe» нет возможности альтернатив в шаблоне. |
Поиск по 8 знаком работает, однако &&echo "%%f" попадает имя файла с полным путем хотя и стоит dir /b
|
что получилось
set Where=c:\*.txt @ (if not exist "d:\text" md "d:\text") for /f "delims=" %%f in ('dir "%Where%" /b /a-d /on /s') do ( copy %%~nf|findstr /rc:"^........$" d:\text\%%f ) для copy попадает имя файла без расширения, а в каталог назначения имя файла с полным путем источника. Заработало set Where=c:\*.txt @ (if not exist "d:\text" md "d:\text") for /f "delims=" %%f in ('dir "%Where%" /b /a-d /on /s') do ( echo %%~nf|findstr /rc:"^........$" &© %%f d:\text\ ) |
|
vangogru
... echo %%~nf|findstr /rc:"^........$" >nul &© "%%f" d:\text\ PS Where лучше взять в кавычки set "Where=c:\*.txt" |
Время: 09:04. |
Время: 09:04.
© OSzone.net 2001-