我想使用 bat 文件将密码复制到剪贴板。我尝试了一些建议,例如
echo|set /p=Ps5dP%q$@mxnx|clip
但问题是,它不会将 % 符号复制到剪贴板。上面的脚本可以工作,但没有 % 符号。
有什么建议 ?
答案1
它不会将 % 符号复制到剪贴板
从命令行
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
。要将百分比视为常规字符,请将其加倍:
%%
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
答案2
尝试这个
echo|set /p=Ps5dP%%q$@mxnx|clip
逃脱%
%