Супер новый для пакетных файлов и программирования в целом, поэтому любая помощь ценится; Я пытаюсь скопировать и переименовать файл на основе ввода пользователя, а затем открыть новый файл. Моя проблема в том, что если есть дубликат, я хочу, чтобы он повторно запрашивал у пользователя другое имя. Прямо сейчас у меня есть:
SET /P "dname=Type new sheet name, then press Enter:"
COPY "O:\master.xlsx" "O:\%dname%.xlsx" /V /-Y
START /D "O:" %dname%.xlsx
И это работает для копирования и переименования, но если есть дубликат, я получаю приглашение «Вы хотите скопировать Y / N», но если я говорю нет, это не спрашивает другое имя. Спасибо!
Редактировать 1: Теперь у меня есть это:
SET /P "dname=Type sheet name, then press Enter:"
IF EXIST "O:\%dname%.xlsx" (
:RETRY
SET /P "dname=Error! There is already a file named %dname%. Please choose a new unique name:"
IF EXIST "O:\%dname%.xlsx" (
GOTO :RETRY
ELSE GOTO :COPY
)
) ELSE GOTO :COPY
:COPY
COPY "O:\master.xlsx" "O:\%dname%.xlsx" /V /-Y
И, похоже, работает надежно. Есть ли лучший способ оптимизировать / оптимизировать это с помощью al oop? Или это достаточно хорошо?