echo|set /p=
可以输出不带换行符的变量。
我正试图循环这样的文本文件
for /f %%a in (zen.txt) do (
set var=%%a
echo !var!
echo|set /p=!var!
)
有些行只有一个
"
,例如:"he said...
echo
正确输出上述行,而echo|set /p=
不输出任何内容。当使用
echo|set /p=
时,是否可以在变量中转义双引号。 最佳答案
我们需要为set/p
提供额外的报价。您可以尝试类似的操作(当然,不需要创建测试文件)
@echo off
setlocal enableextensions disabledelayedexpansion
rem TESTING - Create a input file
>zen.txt (
echo "He said...
echo It was not me!
echo It was "the thing"!
echo ...
echo ^& it was all" ( The end )
)
for /f "delims=" %%a in (zen.txt) do (
<nul set /p="%%a "
)
echo|set /p
模拟按回车键终止set/p
提示,但它为管道的每一侧创建单独的cmd
实例,使其变慢。输入重定向足以获得相同的结果,但速度更快,资源使用更少。关于windows - 使用echo | set/p =时,在变量中转义双引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53184045/