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

如果列内字符串中空格不超过1个
  1. (Get-Content -Encoding utf8 $_ | Select-String -Pattern '^\s+\d') -replace "\s{2,}",","
复制代码
1

评分人数

    • jave000: 虽然看了书,但是"\s{2,}",","技术 + 1

TOP

第四列为空,文件中有乱码
  1.    9    0.252   m?                                           Baseplate                               Concrete       630.000 300x300x200mm                 
复制代码
1

评分人数

TOP

有乱码,还有空列
  1.    1    11.3448 m     HW-Beam                                 HW100X100                               St37-1         187.379                              
  2.    2    14      Pcs   A-Plate 16401                           A-Pl16401 200x200x10                    St37-1          43.960                              
  3.    3    1       Pcs   C-Plate 12401                           C-Pl12401_1 240x210x10                  St37-1           3.956                              
  4.    4    4       Pcs   Tr鋑erklemme                            HCS TK                                  St37-1           1.732                              
  5.    5    4       Pcs   Hexagon head bolt                       ISO 4014 - M12x40                       8.8 St           0.256                              
  6.    6    4       Pcs   Hexagon nut                             ISO 4032 - M12                          8.8 St           0.100                              
  7.    7    8       Pcs   Washer                                  ISO 7090-12                             8.8 St           0.048                              
  8.    8    56      Pcs   Duty anchor + HIT-HY150                 HAS M16x125/38                          5.6 St           7.000                              
  9.    9    0.252   m?                                           Baseplate                               Concrete       630.000 300x300x200mm                 
复制代码

TOP

本帖最后由 newswan 于 2021-8-31 14:05 编辑

如果例外情况不多,可以一个一个处理
  1. Get-Item *.txt | ForEach-Object { (Get-Content $_) -match "\s{3}\d+\s" -replace "^\s+(\d+)\s+([\d.]+)\s+",($_.BaseName + ",`$1,`$2,") -replace "\s{2,}","," -replace "(?=Baseplate)","," } | Out-File list
复制代码

TOP

回复 30# jave000


csv 要求,如果有空格,必须用""

TOP

本帖最后由 newswan 于 2021-8-31 19:43 编辑
  1. Get-Item *.txt | ForEach-Object {
  2.     (Get-Content $_) -match "\s{3}\d+\s" `
  3.         -replace "^\s+(\d+)\s+([\d.]+)\s+",($_.BaseName + ",`$1,`$2,") `
  4.         -replace "\s+$","" `
  5.         -replace "\s{2,}","," `
  6.         -replace "(?=Baseplate)","," `
  7. } | Out-File list
复制代码

TOP

回复 35# qixiaobin0715


看了一下,好像空格不必 ""

TOP

本帖最后由 newswan 于 2021-8-31 23:40 编辑

现在没有 office 不好测试,csv 的规范 有些不一致
ms office 默认tab
不知道要不要求标题,字段数量

TOP

  1. Get-Item *.txt | ForEach-Object {
  2.     (Get-Content $_) -match "\s{3}\d+\s" `
  3.         -replace "^\s+(\d+)\s+([\d.]+)\s+",($_.BaseName + "`t`$1`t`$2`t") `
  4.         -replace "\s+$","" `
  5.         -replace "\s{2,}","`t" `
  6.         -replace "(?=Baseplate)","`t" `
  7. } | Out-File list.csv
复制代码
1

评分人数

TOP

TOP

回复 43# jave000

可以多一个 \ 比较清晰
  1. $dest = "D:\"
  2. Test-Path $dest\1
复制代码

TOP

返回列表