标题: [文本处理] [已解决]请教批处理 将该文本的文件名 写入文本第三列 [打印本页]
作者: KLL 时间: 2022-1-12 07:02 标题: [已解决]请教批处理 将该文本的文件名 写入文本第三列
本帖最后由 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:06
本帖最后由 5i365 于 2022-1-12 09:08 编辑
前几天, 谷歌搜索解决csv的问题时, 看到有人用powershell 解决了类似的问题, 同时还认识了一个非常强大的组件, 刚刚自己试着改了一下代码, 没想到成功了! 供路过的朋友借鉴学习一下
组件下载地址如下: 下载后, 解压出ChilkatDotNet48.dll,和下面的代码放在同一文件夹就行
https://chilkatdownload.com/9.5. ... net48-9.5.0-x64.zip- #&cls&@powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" &pause&exit
- Add-Type -Path ".\ChilkatDotNet48.dll"
-
- $csv = New-Object Chilkat.Csv
-
- $csv.HasColumnNames = $false
- $csv.LoadFile(".\test.csv")
-
- $col = 2
- $csv.InsertColumn($col)
-
- for ($i=0; $i -lt $csv.NumRows; $i++) {
- $csv.SetCell($i, $col, "20220112")
- }
-
- $csv.SaveFile(".\test_ok.csv")
复制代码
作者: for_flr 时间: 2022-1-12 10:29
- @echo off
- set file=20220112
- set newfile=new_20220112
- (for /f "tokens=1,2* delims=," %%a in (%file%) do (echo;%%a,%%b,%file%,%%c))>%newfile%
复制代码
作者: KLL 时间: 2022-1-13 03:38
抱歉,运行后,生成文件不是所需要的内容
劳请谢谢
作者: qixiaobin0715 时间: 2022-1-13 09:58
回复 4# KLL
自己还是要懂一点批处理的好:
3楼代码最后一行中“in (%file%) ....%newfile%”修改为“in (%file%.txt) ...%newfile%.txt”
作者: KLL 时间: 2022-1-14 02:42
是的 已运行OK
谢谢先进指导
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |