如何避免重定向输出符号“>”被当作命令行参数(可能在快捷方式中)

     2023-03-30     200

关键词:

【中文标题】如何避免重定向输出符号“>”被当作命令行参数(可能在快捷方式中)【英文标题】:How to avoid the redirect output sign">"being taken as command line arguments(in a shortcut maybe) 【发布时间】:2021-09-19 01:45:30 【问题描述】:

我无法通过调用 Windows 上的快捷方式将标准输出重定向到文件。

直接"exe.exe 1 2 1 4 5 6 7 >> log.txt"工作,日志文件生成成功。

我假设在使用快捷方式.lnk时将“>>”符号作为参数,因此它不会生成log.txt

如何正确启动命令或修改程序以达到我想要的效果?

这是我的代码:

static void Main(string[] args)
        
            string acc = "";
            string pass = "";
            string EmailEnabled = "";
            string smtpServer = "";
            string sender = "";
            string smtpAuth = "";
            string receiver = "";
            if (args.Length == 7)
            
                acc = args[0];
                pass = args[1];
                EmailEnabled = args[2];
                smtpServer = args[3];
                sender = args[4];
                smtpAuth = args[5];
                receiver = args[6];
            
            else if (args[2] == "0")
            
                acc = args[0];
                pass = args[1];
                EmailEnabled = args[2];
            
            else
            
                Console.WriteLine("command line arguments are wrong");
                return;
            


截图:

in this way,the">"is taken as an argument

in another way,the">" funtions normal as redirect sign

【问题讨论】:

你的问题到底是什么? 顺便说一句,当一个或没有参数传递时,如果块可能会抛出 indexoutofrange 异常 回复qwr:在快捷方式.lnk文件中,">"符号被当作参数,而不是重定向符号 我明白了。你的意思是你试图通过带有参数的快捷方式调用你的可执行文件对吗? 启动一个新的 CMD.exe 实例并使用 /C 将包含 >> 作为参数的字符串传递给它 【参考方案1】:

我相信这个问题与 Windows 的关系比 C# 更重要 所以要重定向快捷方式

@Flydog57 的评论

cmd /c "file_shortcut.lnk" bla bla bla  >out.txt

即将使用 C#: 您可以制作第 8 个参数输出文件并重定向标准输出 按照此: console.setout 大概是这样的:

   using (var writer = args.Length>7? new StreamWriter(args[7]) : new StreamWriter(Console.OpenStandardOutput()))
         
                Console.SetOut(writer); 
               //all codes inside
        

【讨论】:

特殊符号管道符命令:cutsortuniqwcteetrsplit等命令

...,会把命令丢到后台>>>2>2>>&>:输出重定向、追加重定向、错误输出重定向、错误追加重定向、不区分重定向;【】方括号表示指定字符中的一个,【0-9】, 查看详情

io重定向和管道用法

STDOUT和STDERR可以被重定向到文件命令操作符号文件名支持的操作符号包括:把STDOUT重定向到文件2>把STDERR重定向到文件&>把所有输出重定向到文件文件内容会被覆盖set–C禁止将内容覆盖已有文件,但可追加|file强制覆盖set+C... 查看详情

io和管道

...——————————<?标准输入输出和错误可以被重定向到文件命令操作符号文件名?支持的操作符号包括:\>把输出重定向到文件,文件内容会被覆盖2>把错误重定向到文件&>把所有输出重定向到文件?set–C禁 查看详情

如果提供了任何命令行参数,则将打印语句输出重定向到文件

】如果提供了任何命令行参数,则将打印语句输出重定向到文件【英文标题】:RedirectPrintstatmentoutputtofileifanycommandlineargumentisprovided【发布时间】:2018-02-2408:21:51【问题描述】:我已经编写了函数,它只有使用OpenstackAPI从Openstack... 查看详情

重定向管道——linux基本命令

1.输出重定向Linux默认输入是键盘,输出是显示器。可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个... 查看详情

标准io和重定向(代码片段)

...终端窗口标准错误(STDERR)-2默认输出到终端窗口I/O重定向:改变默认输入、输出的位置把输出和错误重新定向到文件STDOUT和STDERR可以被重定向到文件命令操作符号文件名支持的操作符号包括:覆盖重定向>把 查看详情

将windows命令行的结果保存到文件(cmd命令的重定向输出)

例如:要将ip查询结果记录到文件中查询ip设置:ipconfig/all重定向操作符:>要重定向到的文件:ip.txt这里的文件地址在C:/,如果想导出到别的地方,这里需要指定到别的路径C:/>ipconfig/all>ip.txtOK,网络配置被保存下来了. 查看详情

将windows命令行的结果保存到文件(cmd命令的重定向输出)

例如:要将ip查询结果记录到文件中查询ip设置:ipconfig/all重定向操作符:>要重定向到的文件:ip.txt这里的文件地址在C:/,如果想导出到别的地方,这里需要指定到别的路径C:/>ipconfig/all>ip.txtOK,网络配置被保存下来了. 查看详情

输入/输出从命令行可执行文件重定向到文件

...xecutabletofile【发布时间】:2012-04-1318:44:29【问题描述】:如何保存从文件中获取输入(使用“所以每个输入后面都有相应的输出,就好像我自己在输入输入一样)。我尝试使用“>”将所有内容输出到文件中,但这只会保存标... 查看详情

linux重定向

参考技术A输出重定向:我们使用>或者>>对输出进行重定向。符号的左边表示文件描述符,如果没有的话表示1,也就是标准输出,符号的右边可以是一个文件,也可以是一个输出设备(Linux中万物皆文件,即设备也是文件... 查看详情

管道符重定向与环境变量

1.输入输出重定向1.输入重定向:把文件导入到命令中。符号及作用:命令<文件:将文件作为命令的标准输入命令<<分界符:从标准输入中读入,直到遇到分界符才停止命令<文件1>文件2:将文件1作为命令的标准输入并... 查看详情

在linux源代码中((val)=((val)&15)+((val)>>4)*10)是啥意思?

表示任意几个字符串,其他具体的参考如下:1.>重定向输出符号。2.>>重定向输出符号,但有追加的功能。3.2>错误重定向输出符号,覆盖原文件内容。4.2>>错误重定向输出符号,有文件内容追加的功能。重定向... 查看详情

如何使用 c# 将命令行输出重定向到 ASPX 页面? [复制]

】如何使用c#将命令行输出重定向到ASPX页面?[复制]【英文标题】:HowtoredirectcommandlineoutputtoaASPXpageusingc#?[duplicate]【发布时间】:2014-11-0614:34:33【问题描述】:以下是我使用c#从aspx页面运行命令的代码:stringstrcmd="/k"+@"cd:C:\\GWATS\\... 查看详情

1.2.1bat脚本命令dir显示磁盘目录与重定向符号通配符

...用之文件管理应用2.1.2.1bat脚本命令DIR显示磁盘目录与重定向符号通配符课程地址:http://edu.51cto.com/course/11343.html命令:DIR>>>*?--------------------------[知道有很多可选参数就好了]DIR=directory(目录文件夹)D 查看详情

第五课(管道符输入输出重定向与环境变量)

一、输入输出重定向1.输入重定向是指把文件导入到命令中。命令符号为 “<”。  输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中,而输出重定向又分为清空写入“>”,错误输出&... 查看详情

如何让linux命令不输出结果

比如unzipxx.zip以后,会出现每一个档案..不想看到输出.在背后运行就好..应该有一个什麼参数吧...谢谢unzipxx.zip>/dev/null2>&1一楼的回答也对,但用的时候一般不用加最前面的1unzipxx.zip>/dev/null前半部分是将标准输出重定向到空... 查看详情

如何将标准输入重定向到 Windows 命令行中的文件?

】如何将标准输入重定向到Windows命令行中的文件?【英文标题】:HowdoyouredirectstandardinputtoafileintheWindowscommandline?【发布时间】:2012-06-0503:41:56【问题描述】:在Unix上我会这样做:cat>file.txt如何在Windows命令提示符或批处理文件... 查看详情

重定向

1重定向符号>输出重定向到一个文件或设备覆盖原来的文件>!输出重定向到一个文件或设备强制覆盖原来的文件>>输出重定向到一个文件或设备追加原来的文件<输入重定向到一个程序2标准错误重定向符号2>将一个标... 查看详情