如何更改日期格式列文本文件中的Windows
问题描述:
我有在多行下列数据的txt文件:如何更改日期格式列文本文件中的Windows
10/01/2015,125.99,129.00,125.00,128.97,1615600
10/02/2015,129.92,129.92,127.01,128.81,509800
10/05/2015,129.50,130.00,125.50,126.37,876500
10/06/2015,128.00,131.70,128.00,130.67,1043000
10/07/2015,134.00,135.45,132.60,134.49,1181500
10/08/2015,133.90,133.90,131.60,132.25,736700
10/09/2015,135.01,138.50,135.00,137.80,1493200
10/12/2015,139.90,142.80,138.12,141.85,1879800
10/13/2015,138.80,139.50,137.75,137.99,1103600
10/14/2015,138.34,138.79,137.11,137.92,505200
10/15/2015,138.00,138.80,134.50,135.21,481600
10/16/2015,135.10,140.31,133.51,138.62,2431700
10/19/2015,138.51,139.89,137.50,137.94,521700
我想要的日期格式在使用.bat script
所有行改为YYYY/MM/DD
。
我曾尝试以下:
@echo off&setlocal
for /f "tokens=1,2,3,* delims=,/ " %%i in ('type "kam3.txt"') do (
echo %%k/%%i/%%j,%%l
)>"newfile.txt"
不过,我只看到了最新的界线正在发生变化,数据的其余部分没有显示。
答
以防万一,如果你是开了PowerShell脚本,你可以试试这个:
Get-Content data.txt | Foreach { $_ -replace "^(\d\d)/(\d\d)/(\d\d\d\d),(.*)",'$3/$1/$2,$4' }
结果:
2015/10/01,125.99,129.00,125.00,128.97,1615600
2015/10/02,129.92,129.92,127.01,128.81,509800
2015/10/05,129.50,130.00,125.50,126.37,876500
2015/10/06,128.00,131.70,128.00,130.67,1043000
2015/10/07,134.00,135.45,132.60,134.49,1181500
2015/10/08,133.90,133.90,131.60,132.25,736700
2015/10/09,135.01,138.50,135.00,137.80,1493200
2015/10/12,139.90,142.80,138.12,141.85,1879800
2015/10/13,138.80,139.50,137.75,137.99,1103600
2015/10/14,138.34,138.79,137.11,137.92,505200
2015/10/15,138.00,138.80,134.50,135.21,481600
2015/10/16,135.10,140.31,133.51,138.62,2431700
2015/10/19,138.51,139.89,137.50,137.94,521700
您需要在PowerShell中运行这个(在命令键入powershell提示,例如)。 Get-Conetent
获取输入文件的内容。 Foreach
命令遍历每一行。命令replace
与正则表达式匹配,并将行替换为匹配的变量(但顺序不同)。如果不清楚,请随时要求澄清。
如果您想要不同的分隔符,请使用此命令而不是上述命令。它不查找特定的分隔符(如逗号或分号)。
Get-Content data.txt | Foreach { $_ -replace "^(\d\d)/(\d\d)/(\d\d\d\d)(.*)",'$3/$1/$2$4' }
谢谢你的工作。 – Zam
对不起,但是当我在具有以下数据的其他文件上尝试相同的代码时:10/01/2015; 125.99; 129.00; 125.00; 128.97; 1615600 10/02/2015; 129.92; 129.92; 127.01; 128.81; 509800 10/05/2015; 129.50; 130.00; 125.50; 126.37; 876500 10/06/2015; 128.00; 131.70; 128.00; 130.67; 1043000 10/07/2015; 134.00; 135.45; 132.60; 134.49; 1181500 10/08/2015; 133.90; 133.90; 131.60; 132.25; 736700 10/09/2015; 135.01; 138.50; 135.00; 137.80; 1493200 它不起作用 – Zam
您在此数据中有一个新的分隔符(分号代替逗号)。使用上面张贴的新命令。 – blackpen