2014-09-02 24 views
0

那麼它追我有一個使用2列,這兩個有標題.csv文件: 老師,通道檢查,如果不使用PowerShell

下面老師列位於教師用戶名和Channel欄下方的教師分配的頻道。

我想獲得一個腳本工作,將檢查通過.csv登錄教師的用戶名,然後回覆他們的頻道,如果他們的用戶名不存在,然後追加它,併爲其分配一個通道是1數量比以前的教師頻道高。一旦腳本添加了登錄用戶的新用戶名,它應該使用他們新分配的頻道。

到目前爲止,我有這樣的:

$strCSV = "\\SEVERNAME\SHARE\FOLDER" 
$strCurrentUser = Get-WmiObject -Class Win32_ComputerSystem 
$strChannel = Import-Csv $strCSV\teachers.csv | where {$_.Teacher -eq $strCurrentUser.UserName.TrimStart("DOMAIN\")} | % channel 

這不是很多,但我真正的新PowerShell中,所以任何幫助將是驚人的,請。

回答

1

這樣的事情會工作。它會爲現有用戶導入CSV檢查。如果找不到其他東西,則獲取最後一個通道將添加一個,並將新的教師導出到文件末尾。

$file = "\\SEVERNAME\SHARE\FOLDER\teachers.csv" 
$teachers = Import-Csv $file 
$strCurrentUser = (Get-WmiObject -Class Win32_ComputerSystem).UserName.TrimStart("DOMAIN\") 
$strChannel = $teachers | where {$_.Teacher -eq $strCurrentUser} | % channel 
if($strChannel){ 
#dostuff with channel 
} 
else{ 
$lastChannel = [int]$teachers[$teachers.length-1].channel + 1 
"{0},{1}" -f $strCurrentUser,$lastChannel | add-content -path $file 
} 
+0

感謝丹麥,你能向我解釋什麼,請在「{0},{1}」 -f部分不請,我已經看到了這之前左右,但真的不明白爲什麼它的存在,而寧願請知道肯定比猜測。 – Random206 2014-09-02 21:41:44

+0

「{0},{1}」-f只是一個格式運算符。所以基本上說格式化輸出爲「$ strCurrentUser,$ lastChannel」,然後將其添加到文件的末尾。由於你的文件只是一個兩列逗號分隔的CSV文件,它應該匹配得很好。如果你需要像var1-var2這樣的不同格式,你可以做「{0} - {1}」-f如果你喜歡,可以參考這篇ms文章瞭解更多信息:http://social.technet.microsoft.com/維基/內容/文章/ 7855.using-的-F格式的運營商,在-powershell.aspx – 2014-09-03 15:30:36