поиск файла по маске
Требуется маска которая выбирает файлы содержащие в своём имени не менее 3х цифр
@echo off
for /r C:\temp\11\ %%i in ("маска") do (
copy %%~fi %1%
)
заранее спасибо
|
или невозможно такую маску подобрать?
|
Объясняй подробнее, что нужно найти/отсеять , или изучай справку команды FINDSTR
|
нужно скопировать файлы в имени которых содержится более 4-х цифр например:
rrr3r2g4g5.txt 4 цифры нужен
er3r3r4ttt.txt 3 цифры не нужен
а конкретней хотелось бы выяснить как выглядит маска таких файлов в виде типа "*asd*.*"
или другой вариант .bat (всмысле не по маске) который файлы скопирует по "заданным выше требованиям" допустим со всего диска D:\ в C:\temp\
|
Вот видишь, есть проблемы с пониманием, что такое "не менее" и "более"
Код:
@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"
)
Не тестировал. Можно улучшить.
|
Код:
@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. в данном варианте файлы без расширения игнорируются
|
Daemonstar |
23-09-2010 00:10 1502122 |
Не могли бы подсказать регексп для файла начинающегося с "F" далие только цифры, файл без розширения?
|
Цитата:
Цитата 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%
|
Daemonstar |
23-09-2010 10:51 1502337 |
Спасибо, выручили!
|
Daemonstar |
23-09-2010 13:13 1502449 |
Не могу понять, почему то не работает
Код:
@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 (
|
Как минимум, нужно экранировать ^|
Посмотри как в 6-м посте.
|
Код:
@echo off
set yyyy=%date:~6,4%
set mm=%date:~3,2%
set dd=%date:~0,2%
set SDIR=d:\2
set DDIR=d:\1\%dd%%mm%%yyyy%
set $R="^F[0-9][0-9]*$"
if not exist "%DDIR%" md "%DDIR%"
for /f "delims=" %%i in (
'dir /b/a-d "%SDIR%\*"^|findstr /irc:%$R%'
) do copy /y "%SDIR%\%%i" "%DDIR%\" >"%~dpn0.log" 2>"%~dpn0.err"
|
Время: 21:50.
© OSzone.net 2001-