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

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

Ветеран


Contributor


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

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


Alex S,
Если файлов 1<=N<=35
Код: Выделить весь код
@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 :Symbol %%N%% "SS" 
		Call Set "@%%SS%%=%%f"
		Call Set "Spis=%%Spis%%%%SS%%"
	)
       	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 :Symbol %ErrorLevel% "SS"
	Call Set "@FName=%%@%SS%%%"
EndLocal& Set "%~2=%@FName%"
Exit /B 0

:Symbol
	Set "S=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	Call Set "%~2=%%S:~%1,1%%"
Exit /B

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


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

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

Отправлено: 10:40, 08-02-2019 | #4