首页
学习
活动
专区
工具
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 脚本就可以同任何这种功能进行合并。我们要做的只是能够从标准输入中接收语法文件,并且我们可以将所有其它的逻辑分散到另一个程序中。

4K10

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

1.1K40
  • 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语句。

    86230

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

    n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。 n >& m 将输出文件 m 和 n 合并。 n 文件 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 >

    1.1K30

    python实现局域网ip地址扫描

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

    3.1K10

    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 和 n 合并。...EOF /dev/null 文件 如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null: command > /dev/null /dev/null 是一个特殊的文件...屏蔽 stdout 和 stderr: command > /dev/null 2>&1 Shell文件包含 Shell 也可以包含外部脚本,将外部脚本的内容合并到当前脚本。

    23820

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

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

    87810

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

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

    1.4K60

    Linux Shell 1>devnull 2>&1 含义

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

    2.4K20

    python正向连接后门

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

    1.4K31

    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/

    94510

    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.5K10

    :>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,因为stdout和stderr合并后一同重定向到/dev/null,但stderr并未被清除,因此仍将在屏幕中显示出来;第二条命令无输出

    1.9K91

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

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

    65430

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

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

    2.8K40

    全志D1-H芯片 Tina 如何查看通过 procd init 脚本启动的应用输出到 stdoutstderr 的打印信息?

    问题描述 当我们使用 procd init 脚本让某个应用程序实现开机自启时,会发现应用程序中原本通过 printf/fprintf 等输出到 stdout/stderr 的打印信息都无法从串口或 adb...解决方法 一般来说,要获取守护进程的打印,需要通过 syslog 之类记录系统整体日志的方法。procd init 脚本也提供了方法将应用程序的打印重定向到 syslog 中。...下面是一个简单的 procd init 脚本例子,它会启动应用程序 /usr/bin/foobar,但我们默认没法看到 foobar 输出到 stdout/stderr 的打印: #!...1”和“procd_set_param stderr 1”两个参数,可将其输出到 stdout/stderr 的内容重定向到 syslog: #!...1 # 将其 stdout 的内容重定向到 syslog procd_set_param stderr 1 # 将其 stderr 的内容重定向到 syslog procd_close_instance

    26310

    Python中os.system()、subprocess.run()、call()、check_output()的用法

    , stderr: 用于指定标准IO文件句柄,可以是: subprocess.PIPE: 用作 stdout, stderr 参数的值时,可以从返回值对象中的 stdout 和 stderr...属性中读取输出内容 subprocess.STDOUT: 用作 stderr 参数的值时,相当于把标准错误重定向到标准输入中) subprocess.DEVNULL: 用作 stdout,...stderr 参数的值时,相当于把输出内容重定向到 /dev/null 用户已经打开的文件对象或描述符(整型数字)capture_output: 当设置为 True 时,相当于 stdout 和...命令自身输出的内容,但是它不存在,python 会报错 stdout=subprocess.PIPE, stderr=subprocess.STDOUT # 标准错误重定向到标准输出) print...=subprocess.STDOUT) print("[" + ret + "]") # 输出内容中包含标准输出和标准错误,输出顺序在 windows 下和 linux 下可能会有差异 assert

    84220

    Linux如何在Bash中将标准错误stderr重定向到stdout标准输出

    将命令的输出重定向到文件或将其通过管道传递到另一个命令时,你可能会注意到错误消息已打印在屏幕上。 在Bash和其他Linux Shell中,执行程序时,它使用三个标准I/O流。...程序输出进入标准输出流,错误消息进入标准错误流。默认情况下,输入流和错误流都打印在屏幕上。 重定向标准输出流 重定向是一种从程序捕获输出并将其作为输入发送到另一个程序或文件的方法。...流可以使用n>运算符重定向,其中n是文件描述符。 省略n时,默认为标准输出流1。例如,以下两个命令是相同的;两者都会将命令输出(stdout)重定向到文件。...重定向到stdout 将程序的输出保存到文件中时,通常会将stderr重定向到stdout,以便将所有内容都保存在一个文件中。...要将stderr重定向到stdout并将错误消息发送到与标准输出相同的文件,请使用以下命令: command > file 2>&1 > file将stdout重定向到file,2>&1将stderr重定向到

    3.7K20
    领券