2017-06-21 63 views
-1

我是新來的powershell,所以我真的可以使用一些我正在嘗試開發的腳本的幫助。在PowerShell中使用ForEach循環來排序在Excel中

我的任務是創建一個PowerShell腳本,清除其中一列的數據並重命名它。之後,它會查看列中的數據,並且每次在數據中找到匹配項時,都會向該列添加嵌入的URL。

我能夠完成腳本的第一部分;但是,我對如何取消腳本的第二部分沒有想法。

因此,我將不勝感激任何幫助或引用,可能會幫助我解決這個問題。

感謝

+2

請出示一些特定的代碼與一個特定的我們可以提供幫助的問題。 – SomeShinyObject

回答

0

我不知道爲什麼,特別是你想的基礎上的for-each, 而是我建議在PowerShell中的Sort-對象一個功能強大的命令使用該表進行排序,給它的對象,並指定排序標準。

參觀此:Order Your Output by Easily Sorting Objects in PowerShell

+0

感謝您的幫助,我一定會檢查一下 –

+0

好吧,我正在改變這方面的路徑。我現在面臨的問題是,我似乎可以看到Excel表格將日期從最新到最舊排序。我還想在腳本中完成其他步驟,但我不知道從哪裏開始...... –

+0

如果這個答案幫助了它,並且對你想要完成的事情的詳細解釋提出了另一個問題。 –

0
`#-------------------------------------------------------------------------- 
----------------------- 
# PowerShell to filter by strings 

Get-Content C:\Users\cobre\Desktop\PowerShell\Out-ExcelPivotTable\john1.csv 
| Where{$_ -notmatch "adobe"} | Out-File 
C:\Users\cobre\Desktop\PowerShell\Out-ExcelPivotTable\john12.csv -Encoding 
ascii –Force 
Get-Content C:\Users\cobre\Desktop\PowerShell\OutExcelPivotTable\john12.csv 
| Where{$_ -match "microsoft"} | Out-File 
C:\Users\cobre\Desktop\PowerShell\Out-ExcelPivotTable\john123.csv -Encoding 
ascii –Force 
Get-Content C:\Users\cobre\Desktop\PowerShell\Out- 
ExcelPivotTable\john123.csv | sort -Descending | Out-File 
C:\Users\cobre\Desktop\PowerShell\Out-ExcelPivotTable\john1234.csv - 
Encoding ascii –Force 

#Moves entire row down 
$xlShiftDown = -4121 
$strPath="C:\Users\cobre\Desktop\PowerShell\Out- 
ExcelPivotTable\john1234.csv" 
$objExcel=New-Object -ComObject Excel.Application 
$objExcel.Visible=$true 
$WorkBook=$objExcel.Workbooks.Open($strPath) 
$worksheet = $workbook.sheets.item("john1234") 


$eRow = $worksheet.cells.item(1,1).entireRow 
$active = $eRow.activate() 
$active = $eRow.insert($xlShiftDown) 

#Create a header for KB Report; set each cell to Bold and add a background 
color 
$row = 1 
$Column = 1 
$objExcel.Cells.Item($row,$column)= 'Release Date' 
$objExcel.Cells.Item($row,$column).Interior.ColorIndex =48 
$objExcel.Cells.Item($row,$column).Font.Bold=$True 
$objExcel.Cells.Item($row,$column).HorizontalAlignment = -4108 
$worksheet.columns.item('a').NumberFormat = "MMM yyyy" 

$row = 1 
$Column = 2 
$objExcel.Cells.Item($row,$column)= 'IAVM Number' 
$objExcel.Cells.Item($row,$column).Interior.ColorIndex =48 
$objExcel.Cells.Item($row,$column).Font.Bold=$True 
$objExcel.Cells.Item($row,$column).HorizontalAlignment = -4108 

$row = 1 
$Column = 3 
$objExcel.Cells.Item($row,$column)= 'Description' 
$objExcel.Cells.Item($row,$column).Interior.ColorIndex =48 
$objExcel.Cells.Item($row,$column).Font.Bold=$True 
$objExcel.Cells.Item($row,$column).HorizontalAlignment = -4108 

$row = 1 
$Column = 4 
$objExcel.Cells.Item($row,$column)= 'CVEs' 
$objExcel.Cells.Item($row,$column).Interior.ColorIndex =48 
$objExcel.Cells.Item($row,$column).Font.Bold=$True 
$objExcel.Cells.Item($row,$column).HorizontalAlignment = -4108 

$row = 1 
$Column = 5 
$objExcel.Cells.Item($row,$column)= 'KBs & Articles' 
$objExcel.Cells.Item($row,$column).Interior.ColorIndex =48 
$objExcel.Cells.Item($row,$column).Font.Bold=$True 
$objExcel.Cells.Item($row,$column).HorizontalAlignment = -4108 

#Set up a header filter 
$headerRange = $objExcel.Range("a1","e1") 
$headerRange.AutoFilter() | Out-Null 

#Increment Row and reset Column back to first column 
$row++ 
$Column = 1 


#Need to capture text with hyperlinks and move to empty cell or sheet 
#Need to copy hyperlink and truncate all but KB numbers and the end of link 
#Need to embed hyperlinks into cell with KB numbers 


#-------------------------------------------------------------------------- 
----------' 
+0

好的@約翰,爲了幫助你,我們可能需要數據。看看你正在嘗試的東西,你可能想要使用excel宏,記錄它們。然後在需要時使用powershell觸發宏(如果Powershell是你想用它來安排任務並獲得定期報告生成的東西)。你可以使用excel直接刷新報告(建議使用這種方法,因爲您使用的是excel對象的所有方式) –

+0

我會看看我可以做些什麼來獲取我可以在這裏上傳的數據。至於使用宏,它不是一個選項,因爲這段腳本將被綁定到自動執行該過程。用戶不會與工作表進行交互,只能在共享點上查看 –

+0

是John,保持SharePoint上的宏不變,並讓Powershell腳本觸發這些宏並使用powershell itsef獲取所需的數據,同樣的問題在上個月。我們解決了這個問題。 1)通過所有必需的計算,保持與SharePoint上的宏的關聯2)從powershell中觸發宏。3)使用powershell專門讀取所需數據並將其推送到另一個SharePoint文件。 –