我想使用批处理将包含&符号的用户输入字符串放入剪贴板。我可以修改字符串,并且可以使用它打印到终端,setlocal EnableExtensions EnableDelayedExpansion
但我无法将它通过管道传输到剪贴板。
这里有一个深入的讨论,讨论了为什么管道会破坏东西,但我无法很好地理解它来解决我的问题。 https://www.robvanderwoude.com/battech_inputvalidation_setp.php
setlocal EnableExtensions EnableDelayedExpansion
set /P "INPUT=Paste the stuff in the terminal please"
set "SEARCHTEXT=+"
set REPLACETEXT=%%2B
for /F "delims=" %%A in ("%INPUT%") do (
set "string=%%A"
set "modified=!string:%SEARCHTEXT%=%REPLACETEXT%!"
echo !modified! | clip
)
因为我要修改的字符串中包含“&username”,所以我得到的输出是:'username' 不是内部或外部命令、可运行程序或批处理文件。
如果只有 I echo !modified!
,则没有错误。如何将任意未清理的字符串放入剪贴板?