2016-02-10 1 views
1

Так что в партии есть много специальных символы, которые зарезервированы и вызывают проблемы, если вы используете их, если я хочу, чтобы установить пароль, как так:Batch: Установить пароль со специальными символами в переменные

SET PASSWORD = "123% 6! @ ## $^& * _-"

Некоторые из этих символов будут удалены после присвоения, например, символ процента '%' интерпретируется как параметр, есть ли способ сделать пакет видеть это как строку вместо интерпретации специальных символов? нет Я не могу избежать этих специальных символов, это в основном файл, который мы говорим пользователю, чтобы отредактировать пакетный файл и установить пароль.

+2

Возможный дубликат [Эхо-точная строка в пакетном файле Windows?] (Http://stackoverflow.com/questions/9757480/echo-exact-string-in-windows-batch-file) –

+0

По существу, вы находитесь на охота на диких гусей. Поскольку пользователь может помещать любые символы в файл, вам нужно иметь дело со всеми возможностями для специальных символов - без сомнения, можно найти способ правильно обработать каждый из них, но рассмотрите ['" =%^& *?) ~ : \/<> ,; '] и, конечно, пространство. Случай с символом тоже. Кошмар - какой-то другой метод, я бы рекомендовал. – Magoo

ответ

0

Вы можете использовать некоторые функции magic для обработки любой строкой, например magic echo.

Но я полагаю, что лучше не редактировать сам пакетный файл, а редактировать файл паролей, например pwd.txt.
После этого вы можете читать этот файл просто с:

@echo off 
setlocal EnableDelayedExpansion 
set /p password= < pwd.txt 
echo !password! 

Это прочитал первую строку файла и не имеет никаких проблем с любым персонажем.

Смежные вопросы