Newsgroup: it.comp.os.dos
Titolo: L'incremento nel ciclo di for

Ho una serie di file batch denominati Axxx primoAutore.bat - Axxx 
secondoAutore.bat - Axxx terzoAutore.bat - ecc.
Dovrei cambiare xxx in un numero incrementale tipo A100 primoAutore.bat 
A101 secondoAutore.bat  A103 terzoAutore.bat
Cose tipo  for/L  %%i (100,1,200) Do ren "Axxx *.bat" "A%%i *.bat" non sono 
adatte allo scopo ......

 A101 secondoAutore.bat  A103 terzoAutore.bat
l'operatore di incremento č un singolo "+"
esempio:
@echo off
::== questo č un test d'incremento
rem instanzio la variabile gatto a 1
set /A Gatto=1
rem stampo la variabile gatto return 1
echo %Gatto%
rem incremento la variabile gatto 1+1
set /A Gatto+=1
rem stampo l'intero incrementato return 2
echo %Gatto%
::== fine del test d'incremento
ciň che vuoi fare č fattibile ma richiede una discreta conoscenza del 
semplice linguaggio di scripting batch
ps hai valutato l'uso di sistemi di scripting decisamente superiori al 
batch?
Cordiali saluti
Corrado Roberto
Cossato - Biella
=======================================================================
My pgp key 
http://pgp.mit.edu:11371/pks/lookup?search=0x86FE80BB&op=index
Fingerprint: 8FC8 05DE 2B53 A8AF 8B2B 6CBF AD23 C4D5 86FE 80BB
=======================================================================

 ciò che vuoi fare è fattibile ma richiede una discreta conoscenza del 


batch?
Io avevo scritto questo vbs per rinominare le foto.
Ma il risultato migliore l'ho avuto usando AutoIt, che permette una finestra di dialogo
con scelta multipla più flessibile (permette l'anteprima).
Nelle pagine del mio sito c'è il sorgente AutoIt e anche il codice compilato.
' *****************************************************
' QuickRename3.vbs
' (c) Cenati Giovanni - 
http://digilander.libero.it/Cenati
' Scritto il 9 maggio 2007 
' Aggiunta la finestra di dialogo per la scelta dei file il 9 agosto 2008
' Codice vbs liberamente utilizzabile citando il sito
' Per modificare il nome dei files
' avviare lo script e scegliere i file dalla finestra di dialogo
' Se il nome fisso inserito è "Test File " (con uno spazio alla fine)
' e il numero dal quale iniziare è 13,
' i files selezionati saranno rinominati, previa conferma,
' in Test "File 013.jpg", "Test File 014.jpg", "Test File 015.jpg", ecc.
' Utilizza una libreria presente in windows xp che purtroppo
' mostra una finestra di dialogo in stile win 3.1 e con i
' nomi dei file in formato 8.3
' *****************************************************
Dim Filenames(1000,2)
Title= "QuickRename3 - by Cenati Giovanni"
	Set comDlg=CreateObject("UserAccounts.CommonDialog")
     'Imposto alcune costanti che potrò usare nella proprietà FLAGS
     const cdlCancel = 32755 'Costante di errore: è stato premuto ANNULLA
     const cdlOFNHideReadOnly = 4 'Nasconde la casella "sola lettura"
     const cdlOFNAllowMultiselect = 512 'Permette di selezionare più files
     const cdlOFNFileMustExist = 4096 'Puoi scegliere solo files esistenti
     Const cdlOFNExplorer = 524288 'Finestra in stile win95
     'impostazione dei Flag
     comDlg.Flags =  cdlOFNHideReadOnly + cdlOFNAllowMultiselect + cdlOFNFileMustExist
     'Imposto i tipi di files che voglio visualizzare
     comDlg.Filter = "Fotografie|*.jpg|Tutti i files|*.*|"
     'Imposto la directory che deve essere mostrata 
     '(altrimenti viene mostrata quella dello script)
     comDlg.InitialDir="c:\" 
	 comdlg.FilterIndex = 1
	 On error resume next
     'Mostro la finestra di dialogo "File Apri"
     comDlg.ShowOpen
     Lista=Split(comDlg.FileName," ")
     NumeroFiles=UBound(Lista) 'inizia da zero
     If NumeroFiles=-1 Then WScript.Quit 'Premuto annulla
     If NumeroFiles=0 Then
     	Filenames(0,1)=Lista(0)
     Else ' unisco il percorso al nome del file
     	NumeroFiles=NumeroFiles -1 'Perchè lista(0) è la directory.
     	For i=0 To NumeroFiles
     		Filenames(i,1)=Lista(0) & Lista(i+1)
     		'Cioè filenames(0) è nomedir+lista(1)
     		'e    filenames(1) è nomedir+lista(2)
        Next
     End If
Set fso = CreateObject("Scripting.FileSystemObject")
NomeFisso = inputbox("Inserisci la parte fissa del nome da dare ai files", title)
NumIniziale = inputbox("Inserisci il numero dal quale iniziare la numerazione", title,
"1")
NumIniziale = cint(NumIniziale)
msg="<pre>"
For i=0 To NumeroFiles
	'Memorizzo l'estensione del file da rinominare
	Estensione = fso.GetExtensionName(Filenames(i,1))
	'Memorizzo il percorso del file e ci aggiungo un "\"
	Percorso = fso.getparentfoldername(Filenames(i,1)) '& "\"
	'Trasformo in stringa "001" il numero che rappresenta il progressivo
	Numero = right("000" & NumIniziale,3) 'es: Trasforma 5 in 005
	'Costruisce il nuovo filename
	Filenames(i,2)= Percorso & "\" & Nomefisso & Numero & "." & Estensione
	'Prepara la riga con i due nomi di file.
	msg=msg & Filenames(i,1) & " --> " & Filenames(i,2) & vbCrlf
	NumIniziale = NumIniziale + 1 'Incrementa il numero progressivo
Next
'*** Crea una finestra che funge da output ***
Set myIE = CreateObject("InternetExplorer.Application")
myIE.Navigate "about:blank"
myIE.ToolBar = False:myIE.StatusBar = False:myIE.Resizable = False
Do
Loop While myIE.Busy
myIE.Width = 900:myIE.Height = 350
myIE.Left = 50:myIE.Top = 50
myIE.Visible = True
myIE.document.writeln("<html><title></title>"&_
  "<body bgcolor=antiquewhite><div id='cont'></div></body></html>")
Set IEWindow = myIE.Document.All("cont")
'**********************************************
' Mostra la preview della modifica dei nomi dei files
IEWindow.INNERHTML = msg
risp= msgbox( "Conferma Rinomina dei files?",vbYesno,Title)
If risp=vbno Then MYie.QUIT:wscript.quit
'Se ha risposto si, procede a rinominare i files
For i=0 To NumeroFiles
	fso.movefile Filenames(i,1),Filenames(i,2)
Next
MYie.QUIT
wscript.quit
-- 
Giovanni Cenati (Bergamo, Italy)
Write to "Reventlov" at katamail com
http://digilander.libero.it/Cenati
 (Esempi e programmi in VbScript)
--