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

Показать сообщение отдельно

Ветеран


Contributor


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

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


Я бы предложил такое вот решение:
Код: Выделить весь код
@Echo Off

Set Maska="c:\sk*"

FOR %%i IN (%Maska%) DO Call :Obrabotka "%%i"

GoTo :EOF 

:Obrabotka
Echo %1
Если несколько файлов подпадают под указанную маску, то при вызове подпрограммы Obrabotka можно обработать необходимым образом каждый файл. Полное имя файла (с кавычками) хранится в переданном параметре %1.
Естественно, кавычки в подпрограмме можно убрать (вызывайте for /? и смотрите как), только зачем это нужно?
Если очень хочется, можно написать
Set FileName=%1

Если Вы уверены, что файл один, то, конечно, можно написать коротенько
Код: Выделить весь код
FOR %%i IN ("c:\sk*") DO Set FileName="%%i"
Echo %FileName%
А вот решение, если файлы надо искать в поддиректориях
Код: Выделить весь код
@Echo Off

Set FDir="С:\"
Set Maska="sk*"

FOR /R %FDir% %%i IN (%Maska%) DO Call :Obrabotka "%%i"
GoTo :EOF 

:Obrabotka
Echo %1

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 30-07-2010 в 21:06. Причина: Дополнил

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:37, 30-07-2010 | #3