Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Pytania do użytkowników Windows Live Mail 2012

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Pytania do użytkowników Windows Live Mail 2012
From: "Grzegorz Niemirowski" <grzegorz@grzegorz.net>
Date: Tue, 21 Apr 2020 18:47:11 +0200
Maniak <xyz@abc.com> napisał(a):
Zaczynam się bać.
Komunikaty podczas przetwarzania się tego drugiego skryptu są bardzo
dziwne. Sięga do bardzo różnych plików na dysku, w bardzo różnych
folderach, ale  żaden z nich nie ma nic wspólnego z pocztą.

Czy uruchamiasz go w folderze z pocztą? Czy podawałeś ścieżkę do tego folderu 
jeśli uruchamiasz z innego (dla komendy ls)?

Teraz rozumiem poprzednie zastrzeżenie o zaufaniu.

Oczywiście, bo np. może być błąd w skrypcie. Jeden już nawet widzę. Otóż 
testowałem u siebie na plikach .txt i w skrypcie
wysłanym na grupie było właśnie *.txt zamiast *.eml. Skrypt mógł więc zmienić 
Ci nazwy niektórych plików tekstowych.
Bardzo przepraszam.

Poniżej poprawny, dodatkowo z obsługą nieprawidłowych znaków:
$c = 1
ls -r *.eml | foreach {
   $subject = gc $_ | Select-String 'Subject: (.*)' | foreach {$_.Matches} | 
foreach {$_.Groups[1].Value}
   if($subject -is [String]) {
       $subject = $subject.Split([IO.Path]::GetInvalidFileNameChars()) -join '_'
       'Rename ' + $_.Name + ' -> ' + $subject + $c + '.eml'
       $_ | Rename-Item -NewName ($subject + $c + '.eml')
   }
   $c = $c + 1
}

--
Grzegorz Niemirowski
https://www.grzegorz.net/

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>