Если я запустил что-то, возвращающееся с & или другим символом, имеющим особое значение, и я пытаюсь использовать его в скрипте, как бы я его избежал?Экранирование выходов в CMD
Примером может быть, если бы я поделился локальной учетной записью с кем-то на том же компьютере, и у меня было имя пользователя, которое говорит John & Matt. Ввод пакетного файла в директории Desktop, что было что-то вроде этого:
@ECHO OFF
echo %~dp0
Было бы вернуть что-то вроде этого:
C:\Users\John
The system cannot find the path specified.
И весь сценарий с этим момента на перерывах, если я стараюсь, чтобы продолжать идти , Если кто-то знает способ сделать весь путь, я буду признателен.
EDIT: Я не уточнил это достаточно раньше. Извини за это. Не очень хорошо объяснить, но если я пытаюсь использовать% ~ DP0 в переменной, и стек больше вещей на вершине, что-то вроде
SETLOCAL
set loc=%~dp0
rename "%~dp0Dir\Dir1\Dir2\File.txt" "Something.txt"
Это, вероятно, запутать команды переименования, если я ставлю еще один набор кавычки, когда я объявляю переменную, чтобы исправить эту проблему.
Пакетный файл, который я пытался создать, в основном удаляет файл, в котором находится командный файл, заменяет его другим файлом в подпапке, находящейся внутри каталога, где находится командный файл, и переименовывает его в другое.
Я не понимаю вашего редактирования. Почему вы устанавливаете 'loc' в'% ~ dp0'? В этом случае вы можете просто установить '% CD%' в '% ~ dp0' и использовать' Ren Dir \ Dir1 \ Dir2 \ File.txt "« Something.txt »'. – Compo
Я новичок в создании пакетных файлов, поэтому я понятия не имел, что% CD% сделал что-то вроде этого.Я буду помнить об этом, когда я пытаюсь создать новый командный файл, который много играет с каталогами. –
Используйте этот синтаксис: 'set 'loc =% ~ dp0 "' - кавычки не становятся частью значения здесь, но некоторые специальные символы (например, '&') скрыты от 'cmd' должным образом ... – aschipfl