[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] everythin的命令行参数输出csv列属性

本帖最后由 小白龙 于 2025-1-20 05:33 编辑

下面是链接是everythin的命令行程序es.exe的命令行参数, 我用后面的代码, 想搜索名为销售合同的文件, 按时间排序, 并用csv格式显示, 有文件名, 大小, 修改日期列, 但是不生效
https://www.voidtools.com/zh-cn/ ... and_line_interface/
  1. es.exe "销售合同" -sort m -csv -export-txt "output.csv" -property name,size,dm
复制代码
我需要的最终输出效果
path, size, date-modified
"C:\Users\Administrator\Desktop\销售合同2.docx", "0.5MB", "2025/1/19 22:56"
"C:\Users\Administrator\Desktop\WX\销售合同打印2.docx", "1.5MB", "2025/1/18 20:56"
"C:\Users\Administrator\Desktop\产品销售合同.docx", "2.5MB", "2025/1/11 2:56"

看文档说-csv是显示格式,-export-csv是输出格式

TOP

回复 2# wanghan519


    对, 我不想输出为文件, 我想输出在cmd中显示

TOP

  1. es.exe xxx -sort date-modified -full-path-and-name -size -dm -csv | awk -F, '{printf "%s,\x22%.2fMB\x22,\x22%s\x22\n",$1,$2/1024/1024,$3}'
复制代码
好像-csv参数和size-format有冲突,且后两者没加双引号,要不就用gawk设一下格式,awk需要改用gawk且双引号需要处理一下......

TOP

回复 4# wanghan519

多谢大佬, 没用 awk 显示如下, 感觉应该也行, 但是那个size列, 怎样改成mb做单位呢
Filename,Size,Date Modified
"C:\Users\Administrator\Desktop\销售合同2.docx",9946,2025/01/20 04:55
"C:\Users\Administrator\Desktop\WX\销售合同打印2.docx",11218,2025/01/12 13:33
"C:\Users\Administrator\Desktop\产品销售合同.docx",9982,2025/01/10 07:17

TOP

回复 5# 小白龙
  1. es.exe xxxx -sort date-modified -full-path-and-name -size -dm -csv | ConvertFrom-Csv | %{$_.Size="{0} MB" -f [Math]::Ceiling($_.Size/1024/1024);$_} | ConvertTo-Csv
复制代码
想不出简单的办法,用powershell大概这样

TOP

本帖最后由 aloha20200628 于 2025-1-21 09:36 编辑

回复 1# 小白龙

假定用6楼的 es.exe 命令行参数可屏显5楼示例的格式文本行,则以下的批处理版本接龙 gawk 代码可完成一楼所要的最终结果...
  1. @echo off
  2. es.exe xxxx -sort date-modified -full-path-and-name -size -dm -csv|gawk -F, "{printf \"%s,\x22%dMB\x22,\x22%s\x22\",$1,$2/1048576,$3}"
  3. pause&exit/b
复制代码

TOP

返回列表