Newsgroup: it.comp.os.win.xp
Titolo: Rinomina batch di files con espressioni regolari

Ciao a tutti,
Ho una serie di files annidati in un complicato albero di
directories, che dovrei rinominare. Fin qui Batch rename utility
si ï¿œ dimostrato fantastico e mi ha permesso di fare tutto. Ma
non questo. Il nome del file ï¿œ del tipo
[stringa] stringa
Le parentesi quadre sono letterali, e dovrei eliminare tutto
quel che c'ï¿œ tra parentesi quadre. Con BRU provo a cercare
l'espressione:
^\[.*\]
Sia con ^ che senza, BRU non riconosce il pattern. Dove sbaglio? 
E se ho fatto bene, quale altro software potrebbe permettermi la
rinomina batch che mi serve?
Thankssss
Apx

 ^\[.*\]
/\w+[^\]]/,""
    ...skipped!
-- 
    * b *
  *   y   *
*   Piero   *
#v+
-beati monocoli in terra caecorum-
#v-

> /\w+[^\]]/,""
Ti ringrazio ma non va... mi sa che sono troppo
lunghi i nomi files, e a questo punto sono nella
cacca fino al collo, temo...
ciao!
Apx.
-- 
Un ingegnere, un biologo e un matematico osservano
una casa che sanno per certo essere vuota. Ad un certo
punto vedono entrare due persone. Successivamente ne
vedono uscire tre. L'ingegnere: "Sicuramente c'è stato
un errore di misura!". Il biologo: "Si sono riprodotti".
Il matematico: "Se adesso entra una persona, la casa
sarà vuota!"

 cacca fino al collo, temo...
'__boot() {
  Dim fso, arg
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set arg = WScript.Arguments
  WScript.Quit main(arg.Count, arg)
'}
Function main(argc, argv)
  Dim dic, nFiles
  Dim fil, sPath
  Dim lRet
  lRet = -1
  main = lRet
  If argc < 1 Then
    'uso: cscript script.vbs c:\documenti
    WScript.StdErr.WriteLine "manca il path radice"
    Exit Function
  End If
  Set dic = CreateObject("Scripting.Dictionary")
  sPath = fso.GetAbsolutePathName(argv(0))
  nFiles = LoadFileList(sPath, dic)
  If nFiles > 0 Then
    if ScanFileList(dic) < 1 Then
      ' nessun file elaborato
      lRet = 1
    Else
      ' "n" files elaborati
      lRet = 0
    End If
  End If
  main = lRet
End Function
Function LoadFileList(sPath, dicFiles)
  Dim sRoot, fld, fil, sfd
  LoadFileList = 0
  sRoot = fso.GetAbsolutePathName(sPath)
  Set fld = fso.GetFolder(sRoot)
  For Each fil In fld.Files
    dicFiles.Add fil.Path, fil.Path
  Next
  For Each sfd In fld.SubFolders
    If (sfd.Name <> ".") And (sfd.Name <> "..") Then
      Call LoadFileList(sfd.Path, dicFiles)
    End If
  Next
  LoadFileList = dicFiles.Count
End Function
Function ScanFileList(dic)
  Dim sPathName, fil
  Dim lRet
  lRet = 0
  For Each sPathName In dic
    Set fil = fso.GetFile(sPathName)
    WScript.StdOut.WriteLine fil.ParentFolder & " " & fil.Name
    ' *** rename ***
    'If fil.Name ... Then
    ' ....
    ' fso.MoveFile sOldName, sNewName
      lRet = lRet + 1
    'End if
  Next
  ScanFileList = lRet
End Function
usa questo 
http://www.vbsedit.com/
 per modificare lo script;
per utilizzarlo, potresti creare un batch che lanci lo script vbs
ad esempio, salvando lo script vbs con il nome "renfiles.vbs"
potresti avere un batch di nome "batrename.bat" contenente
@echo off
cscript //nologo renfiles.vbs d:\files
ciao

usa questo 
http://www.vbsedit.com/
 per modificare lo script;
Non lo conoscevo, davvero utile, mille grazie.
--
ciao
  Stefano

 cacca fino al collo, temo...
Chiedevi un'espressione regolare che trasformasse "[stringa] stringa" in
"[] stringa" e quella che ho postato lo fï¿œ benissimo.
Non so come la usi, ma se copy&paste quanto segue in notepad e salvi il
file come .htm, vedrai che il replace vien fatto correttamente:
<html>
<script type="text/javascript">
var str = "[stringa] stringa";
alert(str);
alert(str.replace(/\w+[^\]]/,""));
</script></html>
-- 
    * b *
  *   y   *
*   Piero   *
#v+
M'hanno regalato un libro, ma si sono dimenticati del software.
#v-

Grazie a tutti.... proverò e se non vi dirò com'è
andata è solo perché ho la connessione bizzosa. Ma
ho salvato i post e lavorerò sui sorgenti
provandoli. Grazie davvero a tutti come sempre
Apx.
PS - sono l'OP se non si è capito :)
-- 
I do not need sex: life fucks me every day.