Несколько проблем, требующих исправления.
- Правильно Цитирование
- Правильное использование
Set
- Правильное использование
Ren
Сначала у нас есть цитаты.Я вижу, вы пытаетесь заставить set _dwg
захватить весь путь "C:\projects\temp.dwg"
, но правильный способ сделать это - set /switch "String=(Your data)"
.Поскольку мы цитируем всю строку, это означает, что у вас не будет конфликтов с пробелами в пути к файлу.
Во-вторых, быстро захотелось обратиться к пробелу в ваших операторах set /p
- projectnumber= enter
не должно быть пробелапосле =
.
Наконец, я настоятельно рекомендую указывать путь к файлу и назначение в командах.Ради Ren
команд вы, несомненно, захотите процитировать путь к файлу, поскольку вы даете путь, а не имя файла.
Если вы уже не знаете, вы можете использовать echo off
, чтобы удалить консольное эхо.
Исправленный сценарий:
@ECHO OFF
set "_dwg=C:\projects\temp.dwg"
set /p "projectnumber=enter project number: "
set /p "projectname=enter project name: "
set "_dwgrename=19-%projectnumber% - %projectname%.dwg"
ren "%_dwg%" "%_dwgrename%"
pause
PS: Не уверен, пытаетесь ли вы вычесть 19 из %projectnumber%
но если вы хотите, вы можете заглянуть в set /a
или ввести set /?
в окно cmd.