@Maxwell012

Почему экранирование не работает?

Есть код:
@echo off
chcp 65001

echo Сейчас вы находитесь в %~dp0
:restart_1
set /p "path_with_directory=Введите путь к каталогу с которого нужно скопировать файлы: "
set /p "path_in_directory=Введите путь к каталогу куда нужно скопировать файлы: " 

:restart_2
set /p "attributes=Введите атрибуты файлов которые нужно копировать: "
if "%attributes%" EQU help (
	echo 	/r --- "только для чтения"
	echo 	/h --- "системные и скрытые файлы"
	echo 	/a --- "архивы"
	echo		null --- "Не указывать атрибуты"
	goto restart_2
	)

if "%attributes%" EQU null (
	echo l null
	xcopy %path_with_directory% %path_in_directory% /s
) else (
	xcopy %path_with_directory% %path_in_directory% /s %attributes%
	)

echo Код окончания: %Errorlevel%
goto restart_1
pause


Был до этого у меня почти такой же код, все работало, теперь когда я ввожу в переменную attributes значение null и проверяю равняется ли эта переменная null, она выдает что не равняется, убираю кавычки (то есть экранизацию) все опять начинаете работать, почему так происходит?

Ещё один вопрос, я в путь откуда буду копировать ввожу C:\Users\%username%\Desktop\L3\, в путь куда - C:\Users\%username%\Desktop\Copiedfiles\, в итоге мне выдает ошибку неверный синтаксис, также в пути бывают пробелы в названии папок я пробовал их экранизировать, но также выдаёт ошибку
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
hint000
@hint000
у админа три руки
null здесь неуместен. Для обозначения пустой строки используют кавычки, между которыми ничего нет, а не null.
...
if "%attributes%" EQU "" (
...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы