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

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

Ветеран


Contributor


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

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


Выбрать номер файла и нажать Enter. Кол-во файлов произвольное.
Код: Выделить весь код
@Echo Off
Cls
	Set "BootFile=%SYSTEMDRIVE%\Work\Image\sources\*.wim *.esd"

	Call :FileName "%BootFile%" 30 "FName" ||Exit /B 1

	Echo %FName%
pause
GoTo :Eof

:FileName
SetLocal
	Set /A N=0
	Pushd "%~dp1" ||(Echo !!! Folder not found "%~dp1" &Pause &EndLocal &Exit /B 2)

       	FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /b /S /O:-D /a:-D %~nx1`) DO Set /A N+=1 &Call Set "@%%N%%=%%f"
       	Popd

       	If %N%==0 (Echo !!! Files not found "%~1" &Pause &EndLocal &Exit /B 2)
	
	Set /A Iter=(%N%+%~2-1)/%~2
	Set /A j=0
	:Begin
		Set /A j+=1
		Set /A N1=(%j%-1)*%~2+1
		Set /A N2=%j%*%~2
		If %N2% GTR %N% Set /A N2=%N%
		Set /A i=192837459
		:Begin2
		Cls
			Echo == Из %N% файлов показаны с %N1% по %N2% =====&Echo.	
			FOR /L %%i IN (%N1%,1,%N2%) DO (
       				FOR /F "usebackq delims=" %%x IN (`Call Echo %%@%%i%%`) DO Echo %%i --^> %%~nxx
			)
			Echo.

			Echo == Введите номер файла, Q-Завершить работу, Enter-продолжить просмотр
			Set "In=QQ"
			Set /P In=
			If /I "%In%"=="Q" EndLocal& Exit /B 1
			If Not %j%==%Iter% If /I "%In%"=="QQ" GoTo :Begin
			If %j%==%Iter% If /I "%In%"=="QQ" Set /A j=0 &GoTo :Begin

			2>nul Set /A i=%In%
			Set "@FName="
			If "%In%"=="%i%" If %i% LEQ %N% Call Set "@FName=%%@%i%%%"
			If "%@FName%"=="" (Echo. &Echo !!! Номер файла "%In%" указан неверно &Pause &GoTo :Begin2)
			EndLocal& Set "%~3=%@FName%" &Exit /B 0
Exit /B 1
В строке
Call :FileName "%BootFile%" 30 "FName" ||Exit /B 1
30 число строк, отображаемых в порции прокрутки (если она потребуется исходя из количества файлов).

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


Последний раз редактировалось megaloman, 30-12-2020 в 12:22.

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

Отправлено: 15:20, 29-12-2020 | #38