Він не копіює знак% у буфер обміну
З командного рядка
F:\test>echo|set /p=Ps5dP%q$@mxnx|clip
F:\test>Ps5dP%q$@mxnx
Команда працює як очікувалося.
Із пакетного файлу
Команда не працює, як очікувалося. Ви можете бачити echoв командному файлі, який скинув %.
F:\test>type test.cmd
echo|set /p=Ps5dP%q$@mxnx|clip
F:\test>test
F:\test>echo | set /p=Ps5dPq$@mxnx | clip
F:\test>Ps5dPq$@mxnx
Рішення для пакетного файлу
Втеча %(замінити %з %%)
F:\test>type test.cmd
echo|set /p=Ps5dP%%q$@mxnx|clip
F:\test>test
F:\test>echo | set /p=Ps5dP%q$@mxnx | clip
F:\test>Ps5dP%q$@mxnx
Чому мені потрібно уникати символу%?
Уникнення відсотків
%Характер має особливе значення для параметрів командного рядка і FORпараметрів.
Щоб трактувати відсоток як звичайний персонаж, подвійно:
%%
Синтаксис джерела : символи втечі, розділові знаки та цитати
Подальше читання
echo %аecho %|clipякщо у вас є проблеми з відсотком, то запитайте. Пароль не має значення. Усунення несправностей та розголошення вимагає спрощення прикладу для демонстрації проблеми. Тож якщо у вас проблема з%, тоді видаліть Ps5dPq $ зі свого прикладу, тому що це просто мотлох