shok
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору BorlandIMHO так понятно? Код: @echo off set /A FILECOUNT=3 set "FILE1=x:\Any folder\Any File.bin" set "FILE2=y:\Any other folder\Any File.txt" set "FILE3=z:\Any folder\Any File.mp4" setlocal ENABLEDELAYEDEXPANSION for /l %%C in (1,1,%FILECOUNT%) do ( echo %%C. !FILE%%C! ) :Loop set "Prompt=" set /p "Prompt=Enter file number (empty to Cancel): " if defined Prompt ( if not defined FILE!Prompt! goto Loop ) else ( echo Cancelled. exit /b ) REM Здесь вы можете добавить код для обработки выбора файла REM NB: отложенное расширение включено. | Код: @echo off Отключает отображение команд в окне командной строки, чтобы сделать вывод более чистым и аккуратным. set /A FILECOUNT=3 Устанавливает переменную FILECOUNT равной 3. Это количество файлов, которые будут обрабатываться. set “FILE1=x:\Any folder\Any File.bin” Устанавливает переменную FILE1 на путь к первому файлу. set “FILE2=y:\Any other folder\Any File.txt” Устанавливает переменную FILE2 на путь ко второму файлу. set “FILE3=z:\Any folder\Any File.mp4” Устанавливает переменную FILE3 на путь к третьему файлу. setlocal ENABLEDELAYEDEXPANSION Включает отложенное расширение переменных, что позволяет использовать синтаксис !variable! для доступа к значениям переменных внутри циклов и условных операторов. for /l %%C in (1,1,%FILECOUNT%) do ( echo %%C. !FILE%%C! ) Цикл for проходит от 1 до значения FILECOUNT (включительно). В каждой итерации выводится номер файла и его путь. Например, для %%C=1 будет выведено 1. x:\Any folder\Any File.bin. :Loop Метка, к которой можно вернуться с помощью команды goto. Используется для организации цикла ввода. set “Prompt=” Очищает переменную Prompt перед запросом ввода, чтобы избежать использования старого значения. set /p "Prompt=Enter file number (empty to Cancel): " Запрашивает у пользователя ввод номера файла. Если пользователь ничего не вводит и просто нажимает Enter, переменная Prompt остается пустой. if defined Prompt ( if not defined FILE!Prompt! goto Loop ) Проверяет, была ли введена какая-либо строка. Если переменная Prompt определена, проверяется, существует ли переменная FILE с таким номером. Если переменная FILE не определена, скрипт возвращается к метке :Loop и снова запрашивает ввод. else ( echo Cancelled. exit /b ) Если переменная Prompt не определена (пользователь нажал Enter без ввода), выводится сообщение “Cancelled.” и скрипт завершает работу. REM Здесь вы можете добавить код для обработки выбора файла Комментарий, указывающий, где можно добавить код для обработки выбранного файла. Например, можно добавить команды для копирования, перемещения или открытия выбранного файла. REM NB: отложенное расширение включено. Напоминание о том, что отложенное расширение переменных включено, что важно учитывать при написании дальнейшего кода. Этот скрипт позволяет пользователю выбрать один из трех файлов, вводя его номер. Если ввод пустой, скрипт завершает работу. Если введен недопустимый номер, скрипт снова запрашивает ввод. | пример скрипта на PowerShell, который выполняет аналогичную задачу: Код: # Установка переменных $fileCount = 3 $files = @( "x:\Any folder\Any File.bin", "y:\Any other folder\Any File.txt", "z:\Any folder\Any File.mp4" ) # Вывод списка файлов for ($i = 0; $i -lt $fileCount; $i++) { Write-Output "$($i + 1). $($files[$i])" } # Запрос ввода от пользователя do { $prompt = Read-Host "Enter file number (empty to Cancel)" if ($prompt -eq "") { Write-Output "Cancelled." exit } elseif ($prompt -match '^\d+$' -and [int]$prompt -le $fileCount -and [int]$prompt -gt 0) { $selectedFile = $files[$prompt - 1] Write-Output "You selected: $selectedFile" # Здесь можно добавить код для обработки выбранного файла break } else { Write-Output "Invalid input. Please enter a number between 1 and $fileCount." } } while ($true) Установка переменных: $fileCount устанавливается в 3. $files - массив, содержащий пути к файлам. Вывод списка файлов: Цикл for проходит от 0 до fileCount - 1 и выводит номер файла и его путь. Запрос ввода от пользователя: Используется Read-Host для запроса ввода номера файла. Если ввод пустой, выводится сообщение “Cancelled.” и скрипт завершает работу. Если ввод является числом и находится в пределах от 1 до fileCount, выводится выбранный файл и можно добавить код для его обработки. Если ввод недопустимый, выводится сообщение об ошибке и запрос повторяется. |
| Всего записей: 11984 | Зарегистр. 30-04-2006 | Отправлено: 14:57 25-08-2024 | Исправлено: shok, 16:26 25-08-2024 |
|