2014-09-26 37 views
0

我有一个问题LastWriteTime。 我需要拆分这个值:Powershell分割

09/26/2014 10:14:34 09/26/2014 08:09:59 

我尝试这样做:

foreach ($line in $data){write-host $line}. 

但我需要将它写入$date1$date2

这是我使用的代码:

$Folder = Get-ChildItem "\\SERVER-14\data$\backup" -Exclude $ExcludeFolders -ErrorAction SilentlyContinue | Sort-Object LastWriteTime -Descending | Select Name, LastWriteTime -first 2 
$LastFolderName = $Folder.Name 
$LastFolderTime = $Folder.LastWriteTime 
+2

你可以发布更多的代码?我猜你试图获得多个文件的最后一次写入时间,并试图将每次分解到它的变量 – ShaneC 2014-09-26 11:01:15

+0

是的,我更新了我的帖子。 – Tom 2014-09-26 11:05:08

+0

你想用分割日期做什么?将该数组导出到变量?如果你想要它的特定部分,它将是一个'[DateTime]'对象,你可以操纵 – Matt 2014-09-26 11:10:26

回答

0

如果你知道你总是给我2个对象由-first 2在您指定Select-Object,您可以直接引用它们:

$date1 = $folder[0].lastWriteTime 
$date2 = $folder[1].lastWriteTime 
+0

非常感谢。这是我需要的。 – Tom 2014-09-26 11:18:03

0
$value = "09/26/2014 10:14:34 09/26/2014 08:09:59" 

$data = $value.Split(' ') 
# $data contains 4 values --> date, time, date, time 
#i set up some variables 
$date = $true; 
$savedDate = ""; 

# Here we process the $data 
$data | 
    # For each in powershell = % 
    %{ 
      #every odd line (if $date is true), we save the date value 
      if($date){$date=$false;$savedDate=$_} 
      # every even line (if $date is false), we stick together the date and time 
      else{$date=$true;$savedDate+ " " + $_;} 
    } 

很 “直截了当” 的解决方案...(也许不是那么简单,对不起)

拆分上空白 遍历所有字符串, 每次你有一个日期和时间字符串在彼此之后。 因此第一个保存为日期, 每秒值包含的时候,把它放在一起,并继续进行下一个日期...

+0

对我来说看起来不那么简单。谨慎添加更多的解释? – arco444 2014-09-26 11:09:22

+0

对不起。但它对我来说并不简单。我刚开始使用PowerShell。 – Tom 2014-09-26 11:12:20

+0

我不能说得更清楚了,我想,我希望它是有用的 – Schwarzie2478 2014-09-26 11:19:32

0

如果你想要做的是分配在第一和第二上次写入时间变量,然后把这段脚本:

$date1 = $Folder[0].LastWriteTime 
$date2 = $Folder[1].LastWriteTime 

但是,如果该文件夹包含两个项目,您并不总是知道。通过右键你应该做的所有每个项目的工作foreach循环

foreach ($file in $Folder) 
{ 
    #Do something 
} 
0

分裂串里面,你可以使用它使用正则表达式的参数来控制拆分PowerShell的-split操作,或进行简单的情况下,像这个你可以使用DOTNET [字符串]分裂法,其将字符数组上:

PS C:\> $line -split ' ' 
09/26/2014 
10:14:34 
09/26/2014 
08:09:59 

PS C:\> $line.split(' ') 
09/26/2014 
10:14:34 
09/26/2014 
08:09:59 

无论哪种方式,你会得到分割元素的数组。然后,你可以选择分配给那些使用数组切片变量:

PS C:\> $date1,$date2 = ($line -split ' ')[0,2] 
PS C:\> $date1 
09/26/2014 
PS C:\> $date2 
09/26/2014 

PS C:\> $date1,$date2 = $line.split(' ')[0,2] 
PS C:\> $date1 
09/26/2014 
PS C:\> $date2 
09/26/2014 

参见:

about_split

string methods