2010-08-31 39 views
0

J'ai sorti certains fichiers texte dans le même répertoire. Chaque fichier .txt a dans un numéro de groupe, ce nombre commence toujours avec RXC et peut aller jusqu'à 5 caractères après, nous donnant RXCXXXXX j'ai besoin du script pour trouver ce numéro RXC et renommer le fichier à son numéro de groupe correspondant, puis faites le même pour tous les fichiers dans le même répertoire..bat Rechercher et renommer

Merci à l'avance, Joe

+0

Pouvez-vous montrer un exemple de ce que vous devez accomplir? –

Répondre

0
using System.IO; 
foreach(var file in Directory.GetFiles(".")) 
{ 
    var content = File.ReadAllText(file); 
    var startIndex = content.IndexOf("RXC"); 
    var id = content.Substring(startIndex, 8); 
    File.Move(file, id); 
} 
+0

Désolé juste sujet édité, j'ai besoin de cela dans un script .bat. Merci pour votre réponse. – jmituzas

+0

Vous pouvez appeler csharp à partir du script .bat. :) J'ai passé une demi-heure à essayer de résoudre une tâche similaire avec des scripts shell Unix, puis je l'ai résolu avec csharp en moins de cinq minutes. – Rotsor

+0

Votre droit l'a écrit dans un fichier .vbs mais je reçois des erreurs? Ligne: 1 Char: 16 Erreur: Fin prévue de l'instruction – jmituzas

0
Set objFS = CreateObject("Scripting.FileSystemObject") 
strFolder="c:\test" 
Set objFolder = objFS.GetFolder(strFolder) 
For Each strFile In objFolder.Files 
    If objFS.GetExtensionName(strFile) = "txt" Then  
     strFileName = strFile.Name 
     Set objFile = objFS.OpenTextFile(strFileName) 
     Do Until objFile.AtEndOfStream 
      strLine=objFile.ReadLine 
      If InStr(strLine,"RXC") > 0 Then 
       number=Mid(strLine,4)    
       objFile.Close 
       strFile.Name = Trim(number)&".txt"      
       Exit Do 
      End If   
     Loop  
    End If 
Next