Bir csv'den geçmeye çalışıyorum ve Enabled
isimli bir sütundaki tüm değerleri True
'dan A
'a değiştirin.Sütun değerlerini Powershell
Import-Csv .\test.csv | Where-Object {$_.Enabled -eq 'True'} --> what goes here to replace 'True' with 'A'?
Bir csv'den geçmeye çalışıyorum ve Enabled
isimli bir sütundaki tüm değerleri True
'dan A
'a değiştirin.Sütun değerlerini Powershell
Import-Csv .\test.csv | Where-Object {$_.Enabled -eq 'True'} --> what goes here to replace 'True' with 'A'?
Where-Object
bir filtre gibi davranır, bu nedenle sadeceEnabled
True
olduğunu olanlar olacak boru hattının geri kalan kısmına geçmiş olsun kolonlar; Diğerleri sizin çıkış dosyasına dahil etmenizi engeller (sonunda tam bir dosyaya sahip olmak istediğinizi varsayardım).
ForEach-Object
kullanarak ve sonra orada içeride bir koşulu temel değiştirerek, ama yine de içinden her objeyi geçen öneriyoruz:
Import-Csv .\test.csv | ForEach-Object {
if ($_.Enabled -eq 'True') {
$_.Enabled = 'A'
}
$_
} | Export-Csv .\test-modified.csv -NoTypeInformation
Briantist cevabı gayet güzel çalışıyor. Gerçekten bununla delirmek istiyorsan, bir Excel comobject
oluşturabilirsin, çalışma kitabını/sayfayı seçebilirsin, sonra "etkin" tüm sütunu seç, boş hücreleri/sütun başlığını sil, sonra da döngü yap ve aslında aynı şeyi yap briantist, bu şekilde koşullu biçimlendirme eklemek gibi şeyler yapabilmenize rağmen, sadece ne yapmaya çalıştığınıza bağlı olduğunu belirtti.
Gerçekten çıldırmak istiyorsak, [Doug Finke] (http://stackoverflow.com/users/110865/doug-finke) 'nin [Excel modülü] (https://github.com/dfinke)/ImportExcel) COM nesnesini kullanmaktan daha iyi (ve excel'in yüklenmesini gerektirmez)! – briantist
Tam olarak ne arıyordum. PS ile biraz paslı, bu yüzden teşekkür ederim! – Paul