我正在使用Windows10,我想使用Windows命令将Windows cmd终端中的数据导出到csv文件中。
请告知我如何保存。
答案 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
答案 1 :(得分:1)
注意:'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"
)