Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 执行命令前添加1的批处理文件_Batch File_Sed - Fatal编程技术网

Batch file 执行命令前添加1的批处理文件

Batch file 执行命令前添加1的批处理文件,batch-file,sed,Batch File,Sed,我有一个批处理脚本,它将命令回送到单独的批处理文件,然后调用这些文件。无论何时执行外部批处理文件命令,都会在该命令之前随机添加1。这是以前没有发生过的,然后似乎随机开始发生。它会阻止批处理文件中的SED命令正确执行 SED -n -e "/point1/,/point2/p" test.csv > point1.csv 输出为 SED -n -e "/point1/,/point2/p" test.csv 1>point1.csv 你知道为什么会这样吗 重定向器前面的字符是逻

我有一个批处理脚本,它将命令回送到单独的批处理文件,然后调用这些文件。无论何时执行外部批处理文件命令,都会在该命令之前随机添加1。这是以前没有发生过的,然后似乎随机开始发生。它会阻止批处理文件中的SED命令正确执行

SED -n -e "/point1/,/point2/p" test.csv > point1.csv 
输出为

SED -n -e "/point1/,/point2/p" test.csv 1>point1.csv 

你知道为什么会这样吗

重定向器前面的字符是逻辑设备号。0是标准输入(通常是键盘),1是标准输出(通常是控制台),2是标准输出(通常也是控制台)

语法“>文件名”实际上是“1>文件名”的缩写形式,因此出现了“1”

遗憾的是,您的描述不允许重复您的问题。“批处理文件中的SED命令无法正确执行”是指“某些批处理文件(生成器或子系统?)中的某些SED命令无法按预期执行(未指定)”


请提供生成命令、生成的子批次、要处理的数据、预期结果和实际结果的示例。(无需过火-只需几行即可-只需编辑您的问题以包含此数据)

是的,您使用的是Windows,因此无论出于何种/无任何原因,任何事情都是可能的。只需安装cygwin并从shell运行您的命令-保存您的理智…重定向操作符
1>
等效;重定向与重定向句柄(在本例中为
1
,表示标准输出,STDOUT)相呼应,以防没有明确提供重定向句柄;我也解决了这个问题。结果证明与1>无关。然而,我很好奇为什么windows开始打印1,而它以前没有这样做?AFAIR,“twas曾经在NT上这样做过,可以追溯到1996年或之前的NT4。出于与DOS脚本兼容的原因,
1>
是同义词<代码>2>没有经常使用;可能是为了符合理论(错误报告到stderr,正常输出到stdout)。要看到它的辉煌,请尝试打开
echo
,命令将显示在屏幕上。关键点是
echo 12 x>文件
,例如,如果
x
1
echo
“12”,它将
回显到文件中例如,如果
x
3
,则显示在屏幕上并创建一个空文件。在重定向程序调用此行为之前,出现一个数字-0,1,2是唯一实现的设备,但任何数字的行为似乎都很奇怪。因此,通常实现语法
>文件名echo 12 3