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

[文本处理] [已解决]请教批处理 将该文本的文件名 写入文本第三列

本帖最后由 KLL 于 2022-1-14 02:44 编辑

将该文本的文件名  写入文本第三列

文件名20220112.txt

原内容如下  分隔号逗号
1269,圣杯,136.00,137.50,136.00,137.00,2117
1271,晨晖生技,60.80,61.40,59.20,61.40,73040
1293,利统,39.05,39.55,38.10,38.50,60005

生成后

1269,圣杯,20220112,136.00,137.50,136.00,137.00,2117
1271,晨晖生技,20220112,60.80,61.40,59.20,61.40,73040
1293,利统,20220112,39.05,39.55,38.10,38.50,60005

谢谢先进

本帖最后由 5i365 于 2022-1-12 09:08 编辑

前几天, 谷歌搜索解决csv的问题时, 看到有人用powershell 解决了类似的问题, 同时还认识了一个非常强大的组件, 刚刚自己试着改了一下代码, 没想到成功了! 供路过的朋友借鉴学习一下
组件下载地址如下: 下载后, 解压出ChilkatDotNet48.dll,和下面的代码放在同一文件夹就行
https://chilkatdownload.com/9.5. ... net48-9.5.0-x64.zip
  1. #&cls&@powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" &pause&exit
  2. Add-Type -Path ".\ChilkatDotNet48.dll"
  3. $csv = New-Object Chilkat.Csv
  4. $csv.HasColumnNames = $false
  5. $csv.LoadFile(".\test.csv")
  6. $col = 2
  7. $csv.InsertColumn($col)
  8. for ($i=0; $i -lt $csv.NumRows; $i++) {
  9. $csv.SetCell($i, $col, "20220112")
  10. }
  11. $csv.SaveFile(".\test_ok.csv")
复制代码

TOP

  1. @echo off
  2. set file=20220112
  3. set newfile=new_20220112
  4. (for /f "tokens=1,2* delims=," %%a in (%file%) do (echo;%%a,%%b,%file%,%%c))>%newfile%
复制代码
1

评分人数

    • KLL: 乐于助人技术 + 1

TOP

抱歉,运行后,生成文件不是所需要的内容
劳请谢谢

TOP

回复 4# KLL
自己还是要懂一点批处理的好:
3楼代码最后一行中“in (%file%) ....%newfile%”修改为“in (%file%.txt) ...%newfile%.txt”
1

评分人数

    • KLL: 乐于助人技术 + 1

TOP

是的  已运行OK
谢谢先进指导

TOP

返回列表