读书人

window管道与批处理解决思路

发布时间: 2013-09-29 11:07:08 作者: rapoo

window管道与批处理
大家都知道运用管道可以调用批处理,让其标准输出窗口中的内容输出到想要的地方。现在有如下批处理:
echo off
echo begin
pause
set /p xx=
pause
echo end
使用管道时,可以输出内容,但是却缺少交互,你根本不能输入什么,它会一直的调用下去,不会停顿,所以根本无法对xx赋值。
然后采取另一种方法,就是在调用批处理之前先向管道里面输入一些内容,比如输入ymm iii ll,然后执行,但是结果xx=mm iii ll,很明显,第一个y用来按任意键pause了,这样看来,还是不能与之正确的交互,比如我有很多set /p xx呢。所以恳请各位大虾们看看,问题出在何处,如何去解决这个问题,或者通过一些其他的手段,希望能看到相关的代码或者提供一些调用方法,以及思路,谢谢,分不多,但诚意足。
[解决办法]
说实话,没看懂人要表达什么意思,你这个批处理中用那么多pause做什么,用途是什么?


@echo off
echo begin
set /p xx=请输入内容:
echo %xx%
echo end
pause

这样不行吗?
[解决办法]
表示没看懂。是cmd下的命令?
[解决办法]
t.bat:
@echo off
:b
echo begin
pause
set /p xx=xx?
pause
echo xx=%xx%
echo end
if not "%xx%"=="END" goto b

in.txt:
pA

B

C

END



C:\>t.bat <in.txt
begin
请按任意键继续. . .
xx?请按任意键继续. . .
xx=A
end
begin
请按任意键继续. . .
xx?请按任意键继续. . .
xx=B
end
begin
请按任意键继续. . .
xx?请按任意键继续. . .
xx=C
end
begin
请按任意键继续. . .
xx?请按任意键继续. . .
xx=END
end

[解决办法]
pause改为pause < nul
不然也就只能给它输入数据了

读书人网 >C++

热点推荐