文件名中的Powershell变量

时间:2017-11-24 08:18:19

标签: powershell

每天都会以testDDMMYYY.csv格式保存当前日期的文件test24112017.csv

我需要用Powershell打开当天的文件,但是,我还没有办法让它使用变量。

#Date (24112017)
[String]$a=(Get-Date).ToShortDateString() | Foreach-Object {$_ -replace "\.", ""} 

#Open the file called test24112017
[int] $S1=Get-Content "D:\test$($a).csv" -Tail 1 |  Foreach-Object {$_ -replace "`"", ""} | ForEach-Object{$_.Split(",")[1]} | write-host

如何让该变量在该路径内工作?

2 个答案:

答案 0 :(得分:4)

请勿使用(Get-Date).ToShortDateString() | Foreach-Object {$_ -replace "\.", ""},只需使用Get-Date -Format 'ddMMyyyy'按日期格式化日期:

Get-Content "D:\test$(Get-Date -Format 'ddMMyyyy').csv" -Tail 1

Formatting Dates and Times

答案 1 :(得分:0)

嗯,你不是有点过于复杂了吗?

首先, (Get-Date).ToShortDateString()不会向我2411201724-11-2017。 所以我猜我们有不同的区域设置,你来自世界的哪个部分?

你打印出$a吗?它给你带来了什么?

我会采取不同的方法。因为你的文件名字面上总是比前一个更新(因为它有一个日期)。 我只想对名称进行排序并选择第一个(也就是最新的文件)。

$newestfile = Get-ChildItem c:\temp |  Sort-Object Name -Desc | select * -First 1

现在用你最新的文件做你想做的事。

get-content $newestfile.fullname