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

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

Ветеран


Contributor


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

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


UnrealMalcolm, По идее мне не нравится идея : 500 файлов промелькнёт на экране мигом, а как номер выбирать? Я наваял вывод квантами, например, по 30 штук. В принципе, количество выводимых за раз строк можно поставить 100000, и получится как у Iska
Код: Выделить весь код
@Echo Off
Cls

Set "BoxIn=E:\_Скопировано.wd\201309_Испания_Барселона"
Set /A Quota=30

Set /A N=0
FOR /F "usebackq delims=" %%f IN (`2^>nul Dir "%BoxIn%\" /b /A:-d`) DO (
	Set /A N+=1
	Call Set "Num=$$$$$$%%N%%" 
	Call Set "%%Num:~-5%%=%%~nxf"
)

Set /A iN=0
Set "MyName="
FOR /F "usebackq tokens=1* delims==" %%i IN (`2^>nul Set "$"`) DO Set "Num=%%i" &Call :OutName "MyName" "%%Num:$= %%" "%%~nxj" ||GoTo :End
:End

If Not "%MyName%"=="" (Echo "%MyName%") Else (Echo File not selected)
Pause
Exit /B

:OutName
	Set /A iN+=1
	Echo %~2 %~3

	If %iN% EQU %Quota% Call :MyPause %1 %2 %3 ||Exit /B 1
	If %iN% EQU %N%     Call :MyPause %1 %2 %3 ||Exit /B 1
Exit /B 0

:MyPause
	Set /A iN=0, jN=0
	Set /P jN=Type number 1-%N% of file, or Q-Quit, or Enter or any key to continue:
	If /I "%jN%"=="Q" Exit /B 2 
	Set /A jN=jN*1
	If %jN% EQU 0 Exit /B 0
	If 1 LEQ %jN% If %jN% LEQ %N% (GoTo :Rezult) Else (Echo Wrong number %jN% &GoTo :MyPause) 

	:Rezult
		Set "jN=$$$$$$%jN%"
		Call Set "jN=%%%jN:~-5%%%"
		Call Set "%~1=%%jN%%"
Exit /B 1

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

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

Отправлено: 14:48, 07-06-2020 | #13