Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] поиск файла по маске

Ответить
Настройки темы
CMD/BAT - [решено] поиск файла по маске

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: evilfelix
Дата: 19-09-2010
Требуется маска которая выбирает файлы содержащие в своём имени не менее 3х цифр

@echo off
for /r C:\temp\11\ %%i in ("маска") do (
copy %%~fi %1%
)

заранее спасибо

Отправлено: 00:04, 19-09-2010

 

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


или невозможно такую маску подобрать?

Отправлено: 01:06, 19-09-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Объясняй подробнее, что нужно найти/отсеять , или изучай справку команды FINDSTR
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:21, 19-09-2010 | #3


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


нужно скопировать файлы в имени которых содержится более 4-х цифр например:
rrr3r2g4g5.txt 4 цифры нужен
er3r3r4ttt.txt 3 цифры не нужен

а конкретней хотелось бы выяснить как выглядит маска таких файлов в виде типа "*asd*.*"

или другой вариант .bat (всмысле не по маске) который файлы скопирует по "заданным выше требованиям" допустим со всего диска D:\ в C:\temp\

Отправлено: 01:29, 19-09-2010 | #4


Старожил


Сообщения: 352
Благодарности: 119

Профиль | Отправить PM | Цитировать


Вот видишь, есть проблемы с пониманием, что такое "не менее" и "более"
Код: Выделить весь код
@echo off

for /f "delims=" %%f in ('dir /b/a-d/s D:\') do (
echo %%~nf | findstr /r /c:[0-9].*[0-9].*[0-9].*[0-9] && copy /b "%%f" "C:\temp"
)
Не тестировал. Можно улучшить.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:57, 19-09-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off

set $S=d:\*
set $D=c:\TEMP

set "$R=[0-9][^0-9\\]*[0-9][^0-9\\]*[0-9][^0-9\\]*[0-9][^\\]*\.[^\\\.]*$"
for /f "delims=" %%i in ('dir /b/s/a-d "%$S%"^|findstr /rc:"%$R%"') do echo copy /y "%%i" "%$D%"
P.S. в данном варианте файлы без расширения игнорируются
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:44, 19-09-2010 | #6


Аватара для Daemonstar

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Не могли бы подсказать регексп для файла начинающегося с "F" далие только цифры, файл без розширения?

Отправлено: 00:10, 23-09-2010 | #7


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Daemonstar:
для файла начинающегося с "F" далие только цифры, файл без розширения »
Код: Выделить весь код
@echo off
set $D=c:\TEMP\*

:: для полного пути

set $R="\\F[0-9][0-9]*$"
dir /b/s/a-d "%$D%"|findstr /irc:%$R%

:: только для имени

set $R="^F[0-9][0-9]*$"
dir /b/a-d "%$D%"|findstr /irc:%$R%
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:39, 23-09-2010 | #8


Аватара для Daemonstar

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Спасибо, выручили!

Отправлено: 10:51, 23-09-2010 | #9


Аватара для Daemonstar

Новый участник


Сообщения: 43
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Не могу понять, почему то не работает
Код: Выделить весь код
@ECHO ONN

rem *****************************************************
rem скрипт перемещения файлов в папку с текущей датой
rem *****************************************************



set yyyy=%date:~6,4%
set mm=%date:~3,2%
set dd=%date:~0,2%

set SDIR=d:\2
set DDIR=d:\1
set rar=D:\Installing\Rar.exe
set $R="\\F[0-9][0-9]*$"


d:
cd %SDIR%
MD %DDIR%\%dd%%mm%%yyyy%

for /f "delims=" %%i in ('dir /b/a-d "%SDIR%"|findstr /irc:"%$R%"') do echo copy /y "%%i" "%DDIR%\%dd%%mm%%yyyy%" > %SDIR%\err.txt

echo.
pause
и отладить не могу , консоль сразу закрывается , хот и использую pause (

Отправлено: 13:13, 23-09-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] поиск файла по маске

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - поиск файла. rust-02 Скриптовые языки администрирования Windows 30 26-02-2022 08:25
CMD/BAT - [решено] поиск файла по маске и запись этого имени в переменную ___dima___ Скриптовые языки администрирования Windows 20 18-06-2017 01:46
[решено] Рекурсивный поиск файла cra5h_ AutoIt 47 06-02-2010 11:38
Разное - [решено] Поиск по типу файла 7human7 Microsoft Windows 7 2 25-11-2009 09:51
CMD/BAT - [решено] Поиск по отрицательной маске *.* / not= dll semiono Скриптовые языки администрирования Windows 8 21-07-2009 15:20




 
Переход