Имя пользователя:
Пароль:
 

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

Ветеран


Contributor


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

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


Alex S,
Если файлов 1<=N<=9
Код: Выделить весь код
@Echo Off                                                                                                 
cls
	Set "BootFile=%SYSTEMDRIVE%\Work\Image\sources"
	Set "Mask=Boot*.wim"

	Call :FileName "%BootFile%\%Mask%" "FName" ||Exit /B 1
	Echo %FName%
pause
GoTo :Eof

:FileName
SetLocal
	Set /A N=0
	Set "Spis="
       	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /b /a:-D "%~1"`) DO Set /A N+=1 &(Call Set "@%%N%%=%%f" &Call Set "Spis=%%Spis%%%%N%%")
       	If %N%==0 (Echo Files not found "%~1" &Pause &Exit /B 2)

	Echo ===== Найдено %N% файлов =====&Echo.	
	FOR /F "usebackq tokens=* delims=@" %%f IN (`2^>nul Set "@"`) DO Echo %%f
	Echo.

	Set /A NExit=%N%+1
	Set "Spis=%Spis%0"
	CHOICE /C %Spis% /N /M "Выберите номер файла, 0(нуль)-Завершить командный файл"
	If %ErrorLevel%==%NExit% Exit /B 1
	Call Set "@FName=%%@%ErrorLevel%%%"
EndLocal& Set "%~2=%@FName%"
Exit /B 0

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


Последний раз редактировалось megaloman, 11-02-2019 в 20:52.

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

Отправлено: 08:52, 08-02-2019 | #2