2012-05-25 118 views
1

我有一個腳本,基本上寫下每個文件和遠程共享文件夾並將其轉儲到csv。一切都很好用(除了最後一部分,腳本本身還有很多工作要做)。導出CSV與路徑作爲變量

 import-csv -path ($savelocation + '\' + $filename) -Delimiter ',' | ForEach-Object { 

      if ($audioarray -contains $_.Extension) { 
       $_.MediaType = 'Audio' 
       $_ 
      } elseif ($videoarray -contains $_.Extension) { 
       $_.MediaType = 'Video' 
       $_ 
      } elseif ($otherarray -contains $_.Extension) { 
       $_.MediaType = 'Other' 
       $_ 
      } else { 
       $_ 
      } 
     } | Export-Csv -Path ($savelocation + '\' + $filename) -Force -Delimiter ',' -NoTypeInformation 

如果我更改爲靜態位置類似\\servername\share\testfolder路徑它工作正常。但是,如果我使用上述內容,或者即使我將($ savelocation +'\'+ $ filename)加入到$ filename的文件中,它仍然只會寫入一個空文件。

+0

做'它將工作寫主機($ savelocation +「\」 + $ filename)'......你會得到什麼? –

+0

C:\ Temp \ NFDW1004-C $ Progra〜1-2012-5-25.csv - 我之前也使用完全相同的命名約定來編寫文件,然後添加額外的csv頭MediaType。 – Unfundednut

回答

3

對不起,但它不適用於任何路徑。原因很簡單 - 你讀/寫同一個文件。它工作,如果你想讀取變量,並在內存中的數據工作。

具有存儲在變量中的路徑(元素)的IMO與它無關。 BTW:你可以加入與加入路徑cmdlet路徑... :)

+0

當然,它是我面對的最簡單的答案。事實上這個文件是同一個文件。我只會轉儲到臨時文件並刪除並重命名它。 – Unfundednut

0

如果你把路徑在veriable代替

$path = $savelocation + '\' + $filename 
Export-Csv -Path $path -Force -Delimiter ',' -NoTypeInformation