VBS/WSH/JS - преобразование формата даты в текстовом файле
-
slnt
VBS/WSH/JS - преобразование формата даты в текстовом файле
Доброе время суток!
Столкнулся со следующей проблемой: в каталоге C:\ID находится порядка 30-40 txt файлов в них дата с форматом 31.12.1970, необходимо преобразовать в формат 1970-12-31 желательно во всех файлах разом.
Столкнулся со следующей проблемой: в каталоге C:\ID находится порядка 30-40 txt файлов в них дата с форматом 31.12.1970, необходимо преобразовать в формат 1970-12-31 желательно во всех файлах разом.
-
Elven
Re: VBS/WSH/JS - преобразование формата даты в текстовом файле
в названии или в содержимом? если в содержимом какой формат строки?
-
slnt
Re: VBS/WSH/JS - преобразование формата даты в текстовом файле
Цитата slnt:
порядка 30-40 txt файлов в них дата с форматом 31.12.1970
Упакуйте два-три таких файла в архив и выложите сюда или на RGhost.
порядка 30-40 txt файлов в них дата с форматом 31.12.1970
VBS/WSH/JS - преобразование формата даты в текстовом файле
Упакуйте два-три таких файла в архив и выложите сюда или на RGhost.
-
slnt
Re: VBS/WSH/JS - преобразование формата даты в текстовом файле
Код PowerShell:
Код:
.
Код:
Код: Выделить всё
gci 'C:\ID\*.txt'|%{
sc $_ (gc $_|%{
($_.Split('\|')|%{
if(([Regex]::Match($_,'^[0-3]\d\.[01]\d\.[1-9]\d{3}$')).Success){
$_=(Get-Date $_ -Format 'yyyy-MM-dd')
};$_
}) -join '|' -replace '\|$'
})
}.
-
Georgio
Re: VBS/WSH/JS - преобразование формата даты в текстовом файле
Цитата Georgio:
PowerShell
Спасибо большое! Все отработало в лучшем виде!
PowerShell
VBS/WSH/JS - преобразование формата даты в текстовом файле
Спасибо большое! Все отработало в лучшем виде!
-
slnt
Re: VBS/WSH/JS - преобразование формата даты в текстовом файле
Georgio, а для чего Вы разбивали строки на составляющие по «.Split()»? Я не пойму цель этого.
-
Iska
Re: VBS/WSH/JS - преобразование формата даты в текстовом файле
Georgio, а для чего Вы разбивали строки на составляющие по «.Split()»? Я не пойму цель этого.
-
Iska
Re: VBS/WSH/JS - преобразование формата даты в текстовом файле
Iska, да это первое, что в голову пришло: проверить составляющие на соответствие шаблону даты и заменить. А как бы Вы написали?
-
Georgio
Re: VBS/WSH/JS - преобразование формата даты в текстовом файле
Я бы, наверное, сразу во всей строке делал замену, наподобие:
Код:
Если файлы не слишком большие — быстрее будет и вовсе обойтись без перебора отдельных строк.
Код:
Код: Выделить всё
Get-ChildItem -Path 'C:\Мои проекты\05\ssp\*.txt' | ForEach-Object -Process {
Set-Content -Path $_ -Value (
Get-Content -Path $_ | ForEach-Object -Process {
$_ -replace '(\d{2})\.(\d{2})\.(\d{4})', '$3-$2-$1'
}
)
}Если файлы не слишком большие — быстрее будет и вовсе обойтись без перебора отдельных строк.