Re: Jak masowo zmienić nazwy plików?

Autor: Grzegorz Niemirowski <gnthexfiles_at_poczta.onet.pl>
Data: Sun 16 May 2010 - 13:35:48 MET DST
Message-ID: <hsola6$29l0$1@opal.icpnet.pl>
Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=original

Przemysław Adam Śmiejek <niechce@spamu.pl> napisał(a):
> I nie ma tego kasować, a przełożyć na tył. Ma powstać
> data_godzina_cośtam
> sedem mogę to zapisać tak:
> $ echo "costam_data_godzina.txt" | sed
> -e"s/\(.*\)_\(.*\)_\(.*\).txt/\2_\3_\1.txt/"
> data_godzina_costam.txt
> choć to nie szczyt elegancji pewnie, ale nie umiałem na szybko wyłączyć
> zachłanności w pierwszej części, bo regexpy to nie jest moja silna strona.

Dobra, nie ma co się pieprzyć ze skryptami cmd, pojedźmy więc z
PowerShellem. Nie pamiętam jakiego masz Windowsa ale PowerShell można
zainstalować conajmniej na XP, na Win7 jest już wbudowany. W PowerShellu
będzie bardzo podobnie jak w sedzie:
PS C:\Users\Grzegorz\Desktop> "cośtam_data_godzina" -replace
"(cośtam)_(.*)_(.*)","`$3_`$2_`$1"
godzina_data_cośtam
Więc całość będzie wyglądać tak:
ls cośtam_* | foreach {$a = $_ -replace
"(cośtam)_(.*)_(.*)\.txt","`$2_`$3_`$1.txt"; mv $_ $a}

-- 
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 3 days, 10 hours, 5 minutes and 14 seconds 
Received on Sun May 16 13:40:03 2010

To archiwum zosta³o wygenerowane przez hypermail 2.1.8 : Sun 16 May 2010 - 13:42:02 MET DST