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 16:33:26 +0200
Maniak <xyz@abc.com> napisał(a):
Niestety, wszystko na czerwono. :-(
Opisy błędów się powtarzają. Są m.in. takie:
Rename-Item : Cannot rename the specified target, because it represents a path 
or device name.
At C:\wlm.ps1:4 char:9
+ $_ | Rename-Item -NewName ($subject + $c + '.eml')
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 + CategoryInfo : InvalidArgument: (:) [Rename-Item], PSArgumentException
 + FullyQualifiedErrorId : 
Argument,Microsoft.PowerShell.Commands.RenameItemCommand
Rename-Item : Cannot convert 'System.Object[]' to the type 'System.String' 
required by parameter 'NewName'. Określona m
etoda nie jest obsługiwana.
At C:\wlm.ps1:4 char:30
+ $_ | Rename-Item -NewName ($subject + $c + '.eml')
+ ~~~~~~~~~~~~~~~~~~~~~~~~
 + CategoryInfo : InvalidArgument: (:) [Rename-Item], ParameterBindingException
 + FullyQualifiedErrorId : 
CannotConvertArgument,Microsoft.PowerShell.Commands.RenameItemCommand
Co jeszcze mam zmienić?
Pozdrawiam

Trudno powiedzieć na odległość. Pewnie w tytułach są znaki takie jak : \ i inne, które są niedozwolone. Zobacz na jakim pliku wywala się poniższa wersja:
$c = 1
ls -r *.txt | foreach {
   $subject = gc $_ | Select-String 'Subject: (.*)' | foreach {$_.Matches} | 
foreach {$_.Groups[1].Value}
   if($subject -is [String]) {
       'Rename ' + $_.Name + ' -> ' + $subject + $c + '.txt'
       $_ | Rename-Item -NewName ($subject + $c + '.txt')
   }
   $c = $c + 1
}

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

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