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

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

Ответить
Настройки темы
CMD/BAT - Поиск файла по введенному имени

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


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

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


Помогите написать bat-файл, с поиском файлов такого вида *xxx*, (rt555.zip или acty555.pdf)
где * - возможны любые символы
ХХХ - цифры, которые обьединяют все эти файлы, но их нужно ввести с клавиатуры, они каждый раз разные
и с последующим их копированием
вот начал:

Цитата:
@Echo off
Set FDir="D:\AST"
set /P Maska="В ведите номер: "

FOR /R %FDir% %%i IN (%Maska%) DO Set FileName="%%i"
Echo %FileName%
set /p answer=Копируем на FTP(Y/N)?
if /i '%answer%'=='Y'
..
else
..
не получаться, не ищет

-------
Linux дружелюбная система, но только она сама выбирает друзей
---------------------------------------------------------------
Itword


Отправлено: 14:25, 05-11-2012

 

Ветеран


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

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


Цитата gora:
Боюсь, что могут пролезть и файлы с маской в расширении (test.123) »
Угу (в принципе, расширение можно попытаться отсечь по точке. Но что делать, если точка есть и в имени?). И в самом пути, если с «dir /s …».

Foreigner, работает.

Отправлено: 22:34, 05-11-2012 | #11



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

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


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


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

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


А как теперь эти файлы скопировать:
Цитата:
@Echo off
set Ftp_vl="D:\FTP"
set /p sDigits=Enter digits for mask:

if defined sDigits (
for /f "delims=" %%i in ('dir /s /d /a "e:\ast\*%sDigits%*.*"') do echo %%i)
...
xcopy /-y "%%i" "%ftp_vl%"
...
выдает ошибку

Цитата:
E:\tets\123>10.bat
ast559.pdf ast559.xls
2 файлов 84*386 байт
Всего файлов:
2 файлов 84*386 байт
Не найден файл: %i
Скопировано файлов: 0.

-------
Linux дружелюбная система, но только она сама выбирает друзей
---------------------------------------------------------------
Itword


Отправлено: 11:19, 06-11-2012 | #12


Аватара для gora

Ушёл из жизни


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

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


Цитата Ceval:
А как теперь эти файлы скопировать »
Код: Выделить весь код
@Echo off
Setlocal EnableDelayedExpansion
Set FDir=e:\Temp\1
Set Ftp_vl=e:\Temp\FTP
If Not Exist "%Ftp_vl%" MD "%Ftp_vl%"

Set /P Maska="В ведите номер: "
If Defined Maska (
	For /F "tokens=* delims=" %%i In ('Dir /B /A:-D "%FDir%\*.*"') Do (
		Set ti=%%~ni
		If Not !ti!==!ti:%Maska%=! (
			Echo %%i
			Copy "%FDir%\%%~i" "%Ftp_vl%">Nul
		)
	)
)
Pause>Nul

Отправлено: 11:37, 06-11-2012 | #13


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


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

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


gora, спасибо, мне б что-то в таком плане
Цитата:
@Echo off
set Ftp_vl="D:\FTP"
set /p mask=Enter digits for mask:

if defined sDigits (
for /f "delims=" %%i in ('dir /s /d /a "e:\ast\rt*%mask*.*"') do echo %%i)
set /p answer= Скопировать (y/n)?
if /i '%answer%'=='y' xcopy /-y "%%i" "%ftp_vl%"
else
exit

-------
Linux дружелюбная система, но только она сама выбирает друзей
---------------------------------------------------------------
Itword


Отправлено: 12:02, 06-11-2012 | #14


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


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

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


разобрался

-------
Linux дружелюбная система, но только она сама выбирает друзей
---------------------------------------------------------------
Itword


Последний раз редактировалось Ceval, 08-11-2012 в 18:12.


Отправлено: 17:48, 08-11-2012 | #15


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


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

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


HTML код: Выделить весь код
.... ... for /f "delims=" %%i in ('dir /b /s "D:\%mask_vl%\result_%mask%.zip"') do xcopy /y "%%i" "X:!Результаты" ... . ..

заменяешь на другую, все прекрасно копируется

И подскажите как еще можно реализовать запись всех действий (там будет и ввод команд в консоль, и несколько копирований и перемещений ) в лог файл, что-то вроде этого:

set $log=D:\copyfile.log
начало записи лог файла
.... ввод команд в консоль
..... копирование ......
ввод команд ......
...... перемещения .....
конец записи в лог-файл

-------
Linux дружелюбная система, но только она сама выбирает друзей
---------------------------------------------------------------
Itword


Отправлено: 13:53, 09-11-2012 | #16



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] поиск файла по маске и запись этого имени в переменную ___dima___ Скриптовые языки администрирования Windows 20 18-06-2017 01:46
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? axmed0207 Скриптовые языки администрирования Windows 1 19-01-2012 06:14
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файла на разных дисках Gawr33 Скриптовые языки администрирования Windows 11 23-04-2011 23:09
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58
Ошибка - Каракули в реестре "Синтаксическая ошибка в имени файла,имени папки или метке тома" permas Microsoft Windows 2000/XP 2 20-02-2010 19:30




 
Переход