专业的编程技术博客社区

网站首页 > 博客文章 正文

DOS命令管道符:>与>>与>&与<&与|重定向用法,错误信息写入文件

baijin 2024-08-08 23:02:28 博客文章 64 ℃ 0 评论

基本说明及例子 :

将输出信息重定向到指定的设备或文件,系统默认输出/输入显示器。

">" : 将命令运行结果的输出传递到后面设备的输入,之前的内容将被覆盖。如echo ABCD > test.txt,是将"ABCD"写入test.txt文件中,test.txt原有的内容将被删除。

">>" :与">"类似,但只在文件内容的后面追加,不覆盖之前的内容。如echo ABCD >> test.txt,是在test.txt文件末尾追加"ABCD",test.txt原有的内容保留。

"<" : 将后面(右边)设备或文件的内容作为其前面命令的输入,默认从显示器读取输入。如

rem 将当前时间设置成15:28:50
echo 15:28:50 > time.txt
time < time.txt

rem 将2022/1/11赋值给变量var,并显示出来
echo 2022/1/11 > time.txt
set /p var= < time.txt
echo var=%var%

"|" : 将上一个命令的运行结果作为下一个命令的输入 。如 echo 2022/1/11|set /p var=&echo var=%var%,它是以下三条命令的组合,是将日期赋给变量,然后显示出来。也可用于自主回复del 、format等命令,如echo Y|del /p test.txt

echo 2022/1/11
set /p var=
echo var=%var%

">&" : 将一个句柄(左边)的输出写入到另一个句柄的输入,如将标准错误信息(句柄2)重定向到标准输出(句柄1),然后追加到batResult.txt文件中,这样命令执行后的错误信息就会保存到文件中了。

if "%newFExt%"=="" (
					ren "%%i" "!file!!ext!" 1>> batResult.txt 2>&1
					if "!errorlevel!" neq "0" ( echo --原文件"%%i",新文件名"!file!!ext!">>batResult.txt)
) else (
					ren "%%i" "!file!.%newFExt%" 2>> batResult.txt)

"<&" : 从一个句柄读取输入后,写到另一个句柄的输入中。句柄2的输入重定向到句柄1的输入中

if "%newFExt%"=="" (
					ren "%%i" "!file!!ext!" 1>> batResult.txt 2<&1
					if "!errorlevel!" neq "0" ( echo --原文件"%%i",新文件名"!file!!ext!"-- >>batResult.txt)
) else (
					ren "%%i" "!file!.%newFExt%" 2>> batResult.txt)

常用句柄说明

  • 0 :句柄0,标准输入stdin,默认键盘输入
  • 1: 句柄1,标准输出stdout,默认输出到命令指示符窗口
  • 2: 句柄2,标准错误stderr,默认输出到命令指示符窗口

findstr "test" *.txt 1>nul 屏蔽输出正确的信息。

ren a.txt b.txt 2>nul 屏蔽输出错误的信息,即有错误发生时不显示错误信息。

也可以这样用:findstr "test" *.txt 1>test.txt 2>err.txt

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表