Re: Batch - nazywanie pliku docelowego

Autor: Grzegorz Niemirowski <gnthexfiles_at_poczta.onet.pl>
Data: Sat 28 Jan 2012 - 20:56:35 MET
Message-ID: <jg1jtq$79g$1@news.icpnet.pl>
Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=original

Konrad Szkudlarczyk <mode5@gazeta.pl> napisa艂(a):
> Witam
> Jest sobie taki (uproszczony) batch
> iconv.exe -t utf-8 "source.txt" >"target.txt"
> Chcia艂bym, aby plik target.txt by艂 tworzony je艣li nie ma go w katalogu, a
> je艣li jest, to by艂 tworzony target(1).txt, je艣li s膮 oba, to target(2).txt
> itd. Plik贸w mo偶e by膰 nawet kilkadziesi膮t.
> Dla utrudnienia - je艣li s膮 dziury w numeracji - np. istnieja pliki
> target.txt, target(1).txt i target(3).txt, to nowy mia艂by by膰
> target(4).txt, a nie 2. Cho膰 nie jest to warunek konieczny.
> Ponadto - w katalogu znajduj膮 si臋 pliki o nazwach np. target_zrobiony.txt,
> target.txtOLD, target(1)_ERRORS.txt itp. i nie powinny wp艂ywa膰 na
> dzia艂anie skryptu.
> Czy jaki艣 mistrz skrypt贸w m贸g艂by mi pom贸c? Skrypt ma dzia艂a膰 na WinXP i
> p贸藕niejszych.

Do batcha nie mam si艂y, natomiast w PowerShellu mo偶na tak:
$filename = "target.txt"
if(Test-Path "target.txt") {
    $number = ls | foreach { if($_.Name -match "target\((\d+)\)\.txt")
{$matches[1]} } | sort -InputObject {[decimal]$_} | select -last 1
    $number++
    $filename = "`"target`(" + $number + "`).txt`""
}
$command = "iconv.exe -t utf-8 source.txt > " + $filename
$command
Invoke-Expression $command

-- 
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 3 days, 17 hours, 42 minutes and 31 seconds 
Received on Sat Jan 28 21:00:03 2012

To archiwum zosta硂 wygenerowane przez hypermail 2.1.8 : Sat 28 Jan 2012 - 21:42:01 MET