1

То, что я пытаюсь сделать, это автоматизировать некоторую работу, которую я делаю ежедневно. То, что я хотел бы случиться, является быстрым сообщением Как Вас зовут? Затем используйте этот ответ в качестве переменной, которая будет использоваться в различных командах, таких как REN и ROBOCOPY. В настоящее время я делаю следующее.

set /p var1="What is your Name?"
cd C:\ProgramData\filepath\Users\
IF exist var1(brk_file) (
gotto :renamed)
else
(goto :repair)
:Repair
REN "var1\current" "current.old"
ROBOCOPY "var1\backup" "current" /e

Теперь их имя всегда будет использоваться в имени папки, но оно может включать номер версии, MD или что-то еще. Например, мой ответ будет "Cam", но моя папка, которую я хочу переименовать и скопировать, - "CamV10"

Так что я хотел бы что-то вроде

if exist *var1*(brk_file) (
goto :renamed)
else
(goto :repair)
:repair
REN "*var1*\current" "current.old"
ROBOCOPY "*var1*\backup" "current" /e

Это не работает для меня, любые предложения будут оценены.

1 ответ1

0

Это проблема XY. Чтобы решить Y, вы создаете вторую проблему под названием X и так далее. Пока проще спросить, нет ли уже решения для Y.

Который имеет место. Это называется переменной среды. В вашем случае вы ищете переменную пользователя.

Введите set в cmd, вы поймете, что я имею в виду.

Затем введите @echo My username is: %USERNAME% and my home is: %USERPROFILE% .
который вернется:

 My username is: John and my home is: C:\Users\John

В любом случае много ошибок в вашем коде. Вы должны прочитать IF /? поскольку оператор ELSE должен находиться в той же строке IF если вы не используете ) он должен быть записан в одну строку, например ) ELSE (

Другое дело: что такое (brk_file)?

Если это строка и часть var1 , вы должны экранировать ( и ) как

IF exist %var1%^(brk_file^)

или, возможно, вы могли бы заключить в двойные кавычки, такие как

IF exist "%var1%(brk_file)"

но, честно говоря, я не уверен.
Во всяком случае, этот вид символов в пути к файлам никогда не бывает хорошим

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .