[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我试了下,AcmeCADConverter_Por 转换成的 dxf 文件,编码格式为 UTF8 without BOM
这样的话,find 或 findstr 应该不可以,楼主是怎么做到的?

TOP

PowerShell 脚本,使用方法请咨询搜索引擎
  1. ForEach( $file In (dir *.dxf) ) {
  2.     $arr  = [IO.File]::ReadAllLines($file, [Text.Encoding]::UTF8);
  3.     $arr = $arr -match '工程|图' -NotMatch '"' | sort -Unique; #找到 工程 或 图 的行,去掉 引号 的行,再去重。
  4.     $str += '"' + $file.Name + '","' + ($arr -join '","') + '"' + "`r`n";
  5. }
  6. sc a.CSV -Value $str;
复制代码

TOP

本帖最后由 WHY 于 2018-8-29 16:53 编辑
  1. ForEach( $file In (dir *.dxf) ) {
  2.     $arr = [IO.File]::ReadAllLines($file, [Text.Encoding]::UTF8);
  3.     $arr = $arr -match '工程|图' -replace '\s+';                          #匹配包含"工程" 或 "图"的行、删除空格
  4.     $arr = $arr -replace '^\(\(FRAME.*PLOTFILEPREFIX."([^"]+)".*$', '$1';
  5.     $arr = $arr -NotMatch '^.{1,5}$|数据链接\^|[c-zC-Z]:\\'               #删除不符合要求的行
  6.     $arr = $arr | sort -Unique;                                           #删除重复行
  7.     $str += '"' + $file.Name + '","' + ($arr -join '","') + '"' + "`r`n";
  8. }
  9. sc a.CSV -Value $str;
复制代码
Win10 v1803 测试没有问题
1

评分人数

    • xy506: 谢谢帮助~技术 + 1

TOP

回复 10# xy506


PS C:\Users\WHY> [text.Encoding]:efault


BodyName          : gb2312
EncodingName      : 简体中文(GB2312)
HeaderName        : gb2312
WebName           : gb2312
WindowsCodePage   : 936
IsBrowserDisplay  : True
IsBrowserSave     : True
IsMailNewsDisplay : True
IsMailNewsSave    : True
IsSingleByte      : False
EncoderFallback   : System.Text.InternalEncoderBestFitFallback
DecoderFallback   : System.Text.InternalDecoderBestFitFallback
IsReadOnly        : True
CodePage          : 936
1

评分人数

    • xy506: 谢谢帮助~技术 + 1

TOP

返回列表