2014-09-26 48 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