Tag: ioredirect

PowerShell的UTF-8输出

我正在尝试使用带有redirectI / O的Process.Start来使用string调用PowerShell.exe ,并使用UTF-8获取输出。 但我似乎无法做到这一点。 我试过了: 传递命令通过-Command参数运行 使用UTF-8编码将PowerShell脚本作为文件写入磁盘 使用带有BOM编码的UTF-8将PowerShell脚本作为文件写入磁盘 使用UTF-16将PowerShell脚本作为文件写入磁盘 在我的控制台应用程序和PowerShell脚本中设置Console.OutputEncoding 在PowerShell中设置$OutputEncoding 设置Process.StartInfo.StandardOutputEncoding 使用Encoding.Unicode而不是Encoding.UTF8 在任何情况下,当我检查给出的字节时,我得到不同的值到我原来的string。 我真的很喜欢解释为什么这不起作用。 这是我的代码: static void Main(string[] args) { DumpBytes("Héllo"); ExecuteCommand("PowerShell.exe", "-Command \"$OutputEncoding = [System.Text.Encoding]::UTF8 ; Write-Output 'Héllo';\"", Environment.CurrentDirectory, DumpBytes, DumpBytes); Console.ReadLine(); } static void DumpBytes(string text) { Console.Write(text + " " + string.Join(",", Encoding.UTF8.GetBytes(text).Select(b => b.ToString("X")))); Console.WriteLine(); } static int ExecuteCommand(string […]

pipe道标准输出和标准错误到两个不同的进程在shell脚本?

我有一个pipline正在做 command1 | command2 所以,命令1的标准输出到命令2,而命令1的标准input到terminal(或shell的标准输出)。 如何将标准输出stderr的command3到第三个进程( command3 ),而标准输出仍然是命令2?

什么是&&意思?

我对这个expression有些困惑: gcc -c -g program.c >& compiler.txt 我知道&>filename名将redirectstdout和stderr文件的文件filename 。 但在这种情况下,&符号大于符号。 它看起来像M>&N的forms,其中M和N是文件描述符。 在上面的代码片断中, M=1和N='compiler.txt' ? 这与以下不同: gcc -c -g program.c > compiler.txt (ampersand removed) 我的理解是,每个打开的文件都与一个大于2的文件描述符关联。这是正确的吗? 如果是这样,是一个文件名与其文件描述符可以互换作为redirect的目标?

如何redirect“时间”命令的输出?

我试图redirect时间命令的输出,但我不能: $time ls > filename real 0m0.000s user 0m0.000s sys 0m0.000s 在文件中,我可以看到ls命令的输出,而不是time 。 请解释,为什么我不能和如何做到这一点。

Runtime.getRuntime()。exec()不起作用

我需要从一个程序执行一个命令。 命令行是好的,我在terminal上试了一下,但是在程序中不起作用。 我从我的代码中添加一个副本: File dir = new File("videos"); String[] children = dir.list(); if (children == null) { // Either dir does not exist or is not a directory System.out.print("No existe el directorio\n"); } else { for (int i=0; i<children.length; i++) { // Get filename of file or directory String filename = children[i]; //Recojo el momento […]

cmd.exeredirect操作符的顺序和位置

首先关于命令 以下工作将stdout和strerrredirect到nul 。 command 1>nul 2>&1 以下不 command 2>&1 1>nul 为什么顺序很重要? 这些expression怎么能用一种人类可以理解的语言来阅读? 关于职位 这工作 command 1>nul 2>&1 这也是 1>nul 2>&1 command 为什么? 任何有关语法规则的官方参考文档都会有所帮助。