如何将Windows CMD终端中的数据导出到csv文件?

时间:2019-01-24 14:56:49

标签: windows cmd

我正在使用Windows10,我想使用Windows命令将Windows cmd终端中的数据导出到csv文件中。

请告知我如何保存。

3 个答案:

答案 0 :(得分:1)

是的,可以将输出重定向到具有任何扩展名的文件:

Windows和Linux语法:

SomeCommand > SomeFile.csv

或者如果您想附加数据:SomeCommand >> SomeFile.csv

Linux语法:

如果您还想要stderr,请使用以下命令:SomeCommand &> SomeFile.csv

或要附加的内容:SomeCommand &>> SomeFile.csv

如果要同时在控制台和文件中同时显示stderr和输出,请使用以下命令:

SomeCommand 2>&1 | tee SomeFile.csv

Here is the info

答案 1 :(得分:1)

enter image description here

注意:'n.e'不存在,但这并不意味着它不能完成,而只是很复杂 列表

命令> output.csv

标准输出流将仅重定向到文件,在终端中将不可见。如果文件已经存在,它将被覆盖。

命令>> output.csv

标准输出流将仅重定向到文件,在终端中将不可见。如果文件已经存在,则新数据将附加到文件末尾。

命令2> output.csv

标准错误流将仅重定向到文件,在终端中将不可见。如果文件已经存在,它将被覆盖。

命令2 >> output.csv

标准错误流将仅重定向到文件,在终端中将不可见。如果文件已经存在,则新数据将附加到文件末尾。

命令&> output.csv

标准输出和标准错误流都将仅重定向到文件,在终端中看不到任何内容。如果文件已经存在,它将被覆盖。

命令&>> output.csv

标准输出和标准错误流都将仅重定向到文件,在终端中看不到任何内容。如果文件已经存在,则新数据将附加到文件末尾。

命令| tee output.csv

标准输出流将被复制到文件,在终端中仍将可见。如果文件已经存在,它将被覆盖。

命令| tee -a output.csv

标准输出流将被复制到文件,在终端中仍将可见。如果文件已经存在,则新数据将附加到文件末尾。

(*)

Bash没有简写语法,该语法只允许将StdErr用管道传递给第二个命令,这里再次需要与tee结合使用以完成表。如果您确实需要这样的东西,请查看“如何用管道输送stderr,而不是stdout?”。关于堆栈溢出的某些方式例如通过交换流或使用进程替换。

命令|&tee output.csv

标准输出流和标准错误流都将被复制到文件中,同时仍在终端中可见。如果文件已经存在,它将被覆盖。

命令|&tee -a output.csv

标准输出流和标准错误流都将被复制到文件中,同时仍在终端中可见。如果文件已经存在,则新数据将附加到文件末尾。

答案 2 :(得分:0)

要将命令输出写入csv文件中: 首先,您需要采用系统中设置的定界符   "," ";"

代码读取注册表以通过注册表查询获取适当的分隔符,此后,作为示例,请在Windows目录中读取一些files.log并写出一些列:

@echo off & setlocal EnableDelayedExpansion

echo/>"%temp%\file_csv.csv"

:: you need write data using delimiter - read by reg query 
set _hkey=HKEY_CURRENT_USER\Control Panel\International

for /f "tokens=3 delims= " %%I in ('reg query "!_hkey!" ^| findstr /lc:"sList"') do set _delimiter=%%I

:: here you will be able to write data with proper delimiter to file.csv
for /f "tokens=1,2,3 delims= " %%a in ('type "%windir%\*.log"') do (

    echo/!_delimiter!%%a!_delimiter!%%b!_delimiter!%%c!_delimiter!>>"%temp%\file_csv.csv"

)