首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将stdout和stderr输出从Perl脚本重定向到Windows上的文件?

要将stdout和stderr输出从Perl脚本重定向到Windows上的文件,您可以使用以下方法:

  1. 使用open函数重定向输出:
代码语言:perl
复制
open(STDOUT, '>', 'output.txt') or die "Can't redirect stdout: $!";
open(STDERR, '>', 'error.txt') or die "Can't redirect stderr: $!";

这将stdout重定向到output.txt文件,将stderr重定向到error.txt文件。

  1. 使用>操作符重定向输出:
代码语言:perl
复制
open(STDOUT, '>', 'output.txt') or die "Can't redirect stdout: $!";
open(STDERR, '>', 'error.txt') or die "Can't redirect stderr: $!";

print "This is a test\n";
print STDERR "This is an error\n";

这将stdout和stderr输出都重定向到文件中。

  1. 使用2>操作符将stderr重定向到单独的文件:
代码语言:perl
复制
open(STDOUT, '>', 'output.txt') or die "Can't redirect stdout: $!";
print "This is a test\n";

open(STDERR, '>', 'error.txt') or die "Can't redirect stderr: $!";
print STDERR "This is an error\n";

这将stdout输出重定向到output.txt文件,将stderr输出重定向到error.txt文件。

请注意,这些方法不会影响其他Perl脚本的输出。如果您想要将所有Perl脚本的输出重定向到文件,请考虑使用Windows的命令行重定向功能,例如:

代码语言:txt
复制
perl script.pl > output.txt 2> error.txt

这将stdout输出重定向到output.txt文件,将stderr输出重定向到error.txt文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python重定向标准输入、标准输出

标准输出标准错误(通常缩写为 stdout  stderr)是建立在每个UNIX系统内管道(pipe)。...始终在重定向 stdout 之前保存它,这样你可以在后面将其设回正常。 打开一个新文件用于写入。 将所有后续输出重定向到我们刚打开文件。...这样只会将输出结果“打印”日志文件中;在IDE窗口中或在屏幕不会看到输出结果。 在我们将 stdout 搞乱之前,让我们把它设回原来方式。 关闭日志文件。...将我们新打开日志文件文件对象赋给 stderr 重定向标准错误。 引发一个异常。屏幕输出上我们可以注意这样没有在屏幕打印出任何东西。所以正常跟踪信息已经写进 error.log。...要点就是我们完全不必修改我们 kgp.py 脚本就可以同任何这种功能进行合并。我们要做只是能够标准输入中接收语法文件,并且我们可以将所有其它逻辑分散另一个程序中。

3.9K10

Shell 输入输出重定向

栗子 执行下面的 who 命令,它将命令完整输出重定向在用户文件中(users): $ who > users 执行后,并没有在终端输出信息,这是因为输出已被默认标准输出设备(终端)重定向指定文件...语法 输出重定向一样,Unix 命令也可以文件获取输入,语法为: command1 < file1 这样,本来需要从键盘获取输入命令会转移到文件读取内容。...command1 outfile 同时替换输入输出,执行command1,文件infile读取内容,然后将输出写入outfile中。...stdin stdout重定向,可以这样写: $ command file2 command 命令将 stdin 重定向 file1,将 stdout 重定向 file2...---- /dev/null 文件 如果希望执行某个命令,但又不希望在屏幕显示输出结果,那么可以将输出重定向 /dev/null: $ command > /dev/null /dev/null

1K40

python实现局域网ip地址扫描

python 遍历局域网ip 知道python开始,我视线里就没缺少过他。尤其是现如今开发语言大有傻瓜化趋势。而作为这一趋势领导,脚本语言就显得格外亮眼。...不管是python还是ruby,perl,都火不得了。就连java都出了个脚本语言版本,好像是叫Groovy,号称下一代java。 也难怪,硬件发展使得很多场合处理性能过剩。...subprocess.STDOUT   创建Popen对象时,用于初始化stderr参数,表示将错误通过标准输出输出。...向stdin发送数据,或stdoutstderr中读取数据。可选参数input指定发送到子进程参数。Communicate()返回一个元组:(stdoutdata, stderrdata)。...同样,如果希望stdoutstderr获取数据,必须将stdoutstderr设置为PIPE。 Popen.send_signal(signal)   向子进程发送信号。

2.9K10

UNIX 系统Shell 输入输出重定向命令

n >> file 将文件描述符为 n 文件以追加方式重定向 file。 n >& m 将输出文件 m n 合并。 n <& m 将输入文件 m n 合并。...需要注意文件描述符 0 通常是标准输入(STDIN),1 是标准输出STDOUT),2 是标准错误输出STDERR)。 ---- 输出重定向 重定向一般通过在命令间插入特定符号来实现。...实例 执行下面的 who 命令,它将命令完整输出重定向在用户文件中(users): $ who > users 执行后,并没有在终端输出信息,这是因为输出已被默认标准输出设备(终端)重定向指定文件...command1 outfile 同时替换输入输出,执行command1,文件infile读取内容,然后将输出写入outfile中。...菜鸟教程 www.runoob.com ---- /dev/null 文件 如果希望执行某个命令,但又不希望在屏幕显示输出结果,那么可以将输出重定向 /dev/null: $ command >

1K30

Python 学习笔记 (8)—— sy

sys.stderr.write('Dive in') Dive inDive inDive in 在最简单例子中,stdout  stderr 把它们输出发送到相同地方  stdout ...stdout  stderr 都是类文件对象,但是它们都是只写。 它们都没有 read 方法,只有 write 方法。...如果文件不存在,将会被创建。如果文件存在,将被覆盖。 sys.stdout = fsock              # 所有后续输出都会被重定向刚才打开文件。...print  'This message will be logged instead of displayed'    # 这样只会将输出结果“打印”日志文件中;屏幕不会看到输出 sys.stdout...在这里,你可以将单个print语句重定向stderr而且不用影响后面的print语句。

82330

Shell脚本学习3

command 2 > file # stderr 重定向 file command 2 >> file #stderr 追加到 file 文件末尾 command > file 2>&1 # stdout... stderr 合并后重定向 file command file2 # stdin stdout重定向 全部可用重定向命令列表: 命令 说明 command > file...n >> file 将文件描述符为 n 文件以追加方式重定向 file。 n >& m 将输出文件 m n 合并。 n <& m 将输入文件 m n 合并。...EOF /dev/null 文件 如果希望执行某个命令,但又不希望在屏幕显示输出结果,那么可以将输出重定向 /dev/null: command > /dev/null /dev/null 是一个特殊文件...屏蔽 stdout stderr: command > /dev/null 2>&1 Shell文件包含 Shell 也可以包含外部脚本,将外部脚本内容合并到当前脚本

20320

Shell脚本攻略04-玩转文件描述符及重定向

概述 文件描述符是与文件输入、输出相关联整数。它们用来跟踪已打开文件。 最常见文件描述符是stdin、 stdoutstderr。...理论知识 在编写脚本时候会频繁使用标准输入(stdin)、标准输出stdout标准错误(stderr)。 通过内容过滤将输出重定向文件是我们平日里基本任务之一。...stderr转换成stdout,使得stderrstdout 都被重定向同一个文件中 $ cmd >output.txt 2>&1 或者这样: $ cmd &> output.txt [root...类似地,使用 /dev/stderr代表标准错误, /dev/stdout代表标准输出。 这些特殊设备文件分别对应stdin、 stderrstdout。...---- 工作原理 就输出重定向而言, >>>并不相同。尽管两者可以将文本重定向文件,但是>会先清空文件,然后再写入内容,而>>会将内容追加到现有文件尾部。

83010

Linux Shell 1>devnull 2>&1 含义

cmd >a 2>a :stdoutstderr都直接送往文件 a ,a文件会被打开两遍,由此导致stdoutstderr互相覆盖。...在shell中,每个进程都三个系统文件 相关联:标准输入stdin,标准输出stdout、标准错误stderr,三个系统文件文件描述符分别为0,1、2。.../test.sh: line 1: t: command not found Tue Oct 9 20:53:44 CST 2007 这次,stderrstdout内容都被重定向log文件中了。...实际, > 就相当于 1> 也就是重定向标准输出,不包括标准错误。通过2>&1,就将标准错误重定向标准输出了,那么再使用>重定向就会将标准输出标准错误信息一同重定向了。...STDOUT_FILENO,实际这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出文件描述符2(STDERR_FILENO),其后果就是文件描述符12指向同一个文件表项

2.1K20

使用python执行shell脚本 并动态传参 及subprocess使用详解

bufsize默认值是0(无缓冲)。 stdin,stdoutstderr分别指定执行程序标准输入,标准输出标准错误文件句柄。...有效值是PIPE,现有文件描述符(正整数),现有文件对象 None。 PIPE表示应该创建一个新管道给孩子。随着无,则不会发生重定向; 孩子文件句柄将从父类继承。...另外,stderr 可以是STDOUT,它表示应用程序stderr数据应该被捕获到与stdout相同文件句柄中。...此外,文件对象stdout,stdinstderrnewlines属性不会被communications()方法更新。...返回returncode Popen.communicate(input=None) 将信息输入进程,stdoutstderr中读取数据,直到达到文件结尾。等待进程终止。

5.2K30

《Linux命令行与shell脚本编程大全》第十五章 呈现数据

15.1 理解输入输出 现在知道两种显示脚本输出方法 1)在显示器屏幕显示 2)将输出文件重定向文件中 15.1.1 标准文件描述符 Linux系统将每个对象当做文件处理。...shell所有输出会被定向标准输出中。 也可以通过输出重定向( > )来改变输出。通过输出重定向符号,可以将本来显示在显示器输出重定向指定文件。...shell或shell中运行程序脚本出错时生成错误消息都会发送到这个位置。 默认情况下STROUTSTDERR指向同样地方(显示器)。但是STDERR不会随着STDOUT重定向而发生改变。...15.2 在脚本重定向输出 有两种方法: 1)临时重定向输出 2)永久重定向脚本所有命令 15.2.1 临时重定向 可以单独将一行重定向STDERR。...15.3 在脚本重定向输入 exec 命令允许你将STDIN重定向Linux系统文件中。 例子:查看test2中数据   1 #!

1.3K60

python正向连接后门

新建一个socket,并将0、1、2分别代表系统stdin、stdoutstderr(标准输入、输出、错误)重定向socket中,然后开启一个shell。...这样我们socket中传来命令就会进入系统标准输入(就跟键盘输入效果一样了),系统输出错误就会重定向socket中,被我们客户端获取。...客户端连接上以后,就开启一个shell进程,然后把进程标准输入输出错误(stdin、stdoutstderr)都重定向管道中,通过管道python程序连接,py中subprocess库已为我们封装好了这个功能...,专门读取管道中数据 4.不使用管道,直接把shell输入输出定向socket中。...直接在popen时候,将新建进程stdin、stdoutstderr重定向socket中。这样就可以不使用管道通信了。这也是C语言下零管道后门原理。

1.3K31

python中sys模块函数

你也可以替换它们, 这时候你就可以重定向输出输入其它设备( device ), 或者以非标准方式处理它们 网上摘抄文章,供大家参考: testing stdout print ‘Hello..., 这就是标准输入:键盘获取信息,再输出到标准输出:屏幕例子。 那么上面的例子中print raw_input是如何与标准输入/输出流建立关系呢?...stdin, stdout, stderr在Python中无非都是文件属性对象,他们在Python启动时自动与Shell 环境中标准输入,输出,出错关联。...那么我们是否可以在Python程序内部将stdin,stdout,stderr读写操作重定向一个内部对象呢?答案是肯定。...#保存标准I/O流 sys.stdout = buff #将标准I/O流重定向buff对象 print 42, ‘hello’, 0.001 sys.stdout =temp #恢复标准I/

87910

:>devnull 2>&1 作用

表示2输出重定向等同于1 那么本文标题语句: 1>/dev/null 首先表示标准输出重定向空设备文件,也就是不输出任何信息终端,说白了就是不显示任何信息。...2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出重定向空设备文件。...A. 1> /dev/null 表示将命令标准输出重定向 /dev/null2>/dev/null 表示将命令错误输出重定向 /dev/null1 - denotes stdout ( standard...2>&1″意思就是将stderr重定向stdout,并一起在屏幕显示出来。... > /dev/null 2>&1   第一条命令输出结果是stderr,因为stdoutstderr合并后一同重定向/dev/null,但stderr并未被清除,因此仍将在屏幕中显示出来;第二条命令无输出

1.8K91

python模块之subprocess类与常量

常量 subprocess.DEVNULL:可传递给stdin, stdout, stderr参数特殊值,意味着将使用特殊文件os.devnull重定向输入输出 subprocess.PIPE:可传递给...stdin, stdout, stderr参数特殊值,意味着使用管道重定向输入输出 subprocess.STDOUT:可传递给stderr参数特殊值,表示重定向标准错误标准输出 Popen 在一个新进程中执行子程序...stdin/stdout/stderr:分别指定程序执行标准输入,标准输出,标准错误。可选值包括PIPE,DEVNULL,已存在文件描述符(正整数),已存在文件对象,None。...子进程文件句柄继承自父进程。除此之外,stderr还可以是STDOUT,表示标准错误输出重定向标准输出。 preexec_fn:限于POSIX系统,设置一个可调用对象,先于子进程中程序执行。...类似的,返回tuple如果希望是非None,需要设置stdout=PIPE/或stderr=PIPE。

2.4K10

研发:重新认识shell io 重定向

默认情况下始终有3个"文件"处于打开状态, stdin(键盘), stdout(屏幕), stderr(错误消息输出到屏幕). 这3个文件其他打开文件都可以被重定向....对于重定向简单解释就是捕捉一个文件, 命令, 程序, 脚本, 或者是脚本代码块输出, 然后将这些输出作为输入发送到另一个文件, 命令, 程序, 或脚本中....每个打开文件都会㹿分配一个文件描述符. stdin, stdout, stderr文件描述符分别是0, 1, 2. 除了这3个文件, 对于其他那些需要打开文件, 保留了文件描述符39....在某些情况下, 将这些额外文件描述符分配给stdin, stdout, 或stderr作为临时剧本链接是非常有用. 在经过复杂重定向刷新之后需要把它们恢复成正常状态 ? ? ? ?

62830

How to Use the Stdin, Stderr, and Stdout Streams in Bash

它们是stdin、stdoutstderr。stdin 全称是标准输入,用于接受用户输入。stdout 完整形式是标准输出,用于将命令输出存储stdout流中。...stderr 完整形式是标准错误,用于将任何命令产生错误信息存储数据流中。stdin、stdout stderr 相应数字标识符值为0、12。...Redirection Operators of Stdin, Stdout, and StderrStdin、StdoutStderr重定向操作符重定向符号使用: "<" 或 "0<"用于stdin...:在英文原文案例中,在testdata.txt文件中加入 "linuxhint.com " "脚本语言 "这两个字符串后,执行前面的命令会出现以下输出。...Example 2: Use of Stdoutpipe (|) 管道符stdout下面是一个使用管道符重定向输出并且创建文件例子。

2.7K40

pyinstaller打包成无控制台程序时运行出错(与popen冲突解决方法)

经过研究,结论: os.popen 会打开一个管道执行命令,而管道是有输入(stdin)、输出(stdout) !...windows下,只有当你要执行命令是shell内建命令(比如dir,copy等) 时,你才需要指定shell=True,而当你要执行一个基于命令行批处理脚本(bat啥时候,不需要指定此项。...stdin、stdoutstderr分别表示子程序标准输入、标准输出标准错误。 可选值有PIPE或者一个有效文件描述符(其实是个正整数)或者一个文件对象,还有None。...另外,stderr值还可以是STDOUT,表示子进程标准错误也输出到标准输出。 如果把preexec_fn设置为一个可调用对象(比如函数),就会在子进程被执行前被调用。...也可以将输出值(stdout)定向文件输出,请看: with open('输出文件.txt' , 'w+', encoding='utf-8') as out_file: proc = subprocess.Popen

3.5K30

详解nohup devnull 2>&1 含义使用

1,而1 一般代表就是STDOUT_FILENO,实际这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出文件描述符2(STDERR_FILENO),其后果就是文件描述符...command >out.file 2>&1 & command >out.file是将command输出重定向out.file文件,即输出内容不打印到屏幕,而是输出到out.file文件中。...首先~command > file 2>file 意思是将命令所产生标准输出信息,错误输出信息送到file 中.command > file 2>file 这样写法,stdoutstderr...stdoutstderr内容....IO效率,前一条命令效率要比后面一条命令效率要低,所以在编写shell脚本时候,较多时候我们会用command > file 2>&1 这样写法.

2.7K31
领券