Jump to content

automatische Dateiumbenennung


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

Servus,

 

ich habe folgendes Problem:

 

Ich habe den ehrenvollen Auftrag erhalten, unzählige Dateien an unserem PC umzubennen, genauer gesagt sollen alle Unterstriche durch Punkte ersetzt werden (z.B.: das_ist_toll.pdf --> das.ist.toll.pdf).

 

Mein erster Gedanke war jetzt, einfach über die Kommandozeile den ren-befehl auszuführen, habe aber als totaler Terminal-Neuling versagt. :jau:

 

Hat vielleicht jemand eine Idee? Die Suche über das Forum und der Suchmaschine meines Vertrauens war leider nicht von Erfolg gekrönt.

 

Danke schon einmal im Voraus für Euer Engagement  :)

Edited by PC-Freak
Link to post

Für solche Aufgaben verwende ich das Mehrfachumbenenntool, das im Total Commander bei ist. Da kannst du Ersetzen-Muster angeben und die Sache ist in null,nix erledigt.

Super, danke für den Tipp! Hat reibungslos funktioniert! Werde mich aber dennoch mal an eine funktionierende Batch-Datei wagen, um meine grauen Zellen etwas zu trainieren :p

 

 

Wie weit bist Du denn? Zeig doch dein Script. Oder erwartest Du jetzt das wir das Script für dich schreiben?

 

EDIT: In diesem Thread solltest Du eine Lösung finden: http://www.mcseboard.de/topic/132208-vbscript-f%C3%BCr-dateien-umbenennen/

Das Problem hat sich ja jetzt von selbst gelöst, aber das bietet eine gute Grundlage! Danke Dir! Mein bisheriger Fortschritt besteht momentan nur aus einigen Code-Zeilen, da meine Kenntnisse im Skripten von Batch-Dateien noch recht beschränkt sind und nicht über doch eher übersichtliche

Anweisungen hinausgingen. Ich werde mich aber dennoch mal daran versuchen, was nicht ist, kann ja noch werden  :wink2:

Edited by PC-Freak
Link to post
  • 2 months later...

Hi @ all,

hatte sowas mal in vbs geschrieben.

 

 

Hier Viel Spass

'======================================================================================
'
'	Help file use html
'======================================================================================

if msgbox("You like to show the Manual of this programm ?", vbYesNo,"Bulk File renamer powerd by xxx") = vbyes then 

      Set wshshell = WScript.CreateObject("WScript.Shell")
	runman = "\\Server01\deployment$\Applications\Individual\HTM_Manuals_for_progs\Bulk_file_renamer\1.htm"
wshshell.run(runman),0,false

else 

      ' hier code für nö 

end if

'======================================================================================

'======================================================================================
'	Deklaration
'======================================================================================

Dim oCmd, oFolder, oFSO, oFileList, oFile 
Dim sRenamePath, sRenamePrefix, sFileExtension, sConfirmRename, scriptcall
Dim iFileCount, iFileIndex 
Dim bConfirmEach 

'======================================================================================


'======================================================================================
'	GUI Browse Folder
'======================================================================================



' Flags for the options parameter
Const BIF_returnonlyfsdirs   = &H0001
Const BIF_dontgobelowdomain  = &H0002
Const BIF_statustext         = &H0004
Const BIF_returnfsancestors  = &H0008
Const BIF_editbox            = &H0010
Const BIF_validate           = &H0020
Const BIF_browseforcomputer  = &H1000
Const BIF_browseforprinter   = &H2000
Const BIF_browseincludefiles = &H4000

Dim wsh, objDlg, objF

' Get Application object of the Windows shell.
Set objDlg = WScript.CreateObject("Shell.Application")

' Use the BrowseForFolder method.
' For instance: Set objF = objDlg.BrowseForFolder _
'     (&H0, "Select the folder to copy", &H10, "C:\Born")

Set objF = objDlg.BrowseForFolder (&H0, _
    "Please Select the folder to rename his Items", _
    BIF_editbox + BIF_returnonlyfsdirs)

' Here we use the first method to detect the result.
If IsValue(objF) Then 
    sRenamePath = objF.Title
Else
    WScript.quit()
End If

' Here we use TypeName to detect the result.
If InStr(1, TypeName(objF), "Folder") > 0 Then
    sRenamePath = objF.Title
Else
    WScript.quit()
End If

Function IsValue(obj)
    ' Check whether the value has been returned.
    Dim tmp
    On Error Resume Next
    tmp = " " & obj
    If Err <> 0 Then
        IsValue = False
    Else
        IsValue = True
    End If
    On Error GoTo 0
End Function

'======================================================================================

'======================================================================================
'	Choose Praefix
'======================================================================================


sRenamePrefix = InputBox("Please input the Prefix for the Name", "Bulk File renamer powerd by xxx")

If sRenamePrefix = "" Then 
wscript.Echo "Error no Praefix" 
WScript.quit() 
end if


'======================================================================================

'======================================================================================
'	Rename Files in Loop
'======================================================================================


'Set wshshell = WScript.CreateObject("WScript.Shell")
'scriptcall = "rename.vbs"
'runthis = scriptcall & sRenamePath & sRenamePrefix
'wshshell.run(runthis)

 
 'Set oCmd = Wscript.Arguments 
 
REM Select Case (oCmd.Count) 
    REM Case 2 
      REM sRenamePath = oCmd.item(0) 
      REM sRenamePrefix = oCmd.item(1) 
      REM bConfirmEach = False 
    REM Case 3 
      REM sRenamePath = oCmd.item(0) 
      REM sRenamePrefix = oCmd.item(1) 
      REM bConfirmEach = oCmd.item(2) 
    REM Case Else 
      REM WScript.Echo "RenameFiles.vbs requires 2 parameters:" &_ 
          REM vbcrlf & "1) Folder Path (or . for current folder)" &_ 
          REM vbcrlf & "2) File Prefix" &_ 
          REM vbcrlf & "3) Confirm each file? True/*False* (optional)" 
      REM WScript.Quit 
REM End Select 
' 
' Get a list of all files in the specified folder 
' 
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oFolder = oFSO.GetFolder(sRenamePath) 
 
Set oFileList = oFolder.Files 
For Each oFile in oFileList 
    iFileCount = iFileCount + 1 
Next 
 
For Each oFile in oFileList 
    sFileExtension = Right(oFile.Name,Len(oFile.Name)-InStr(oFile.Name,".")) 
    If (LCase(sFileExtension) <> "db" AND LCase(sFileExtension) <> "jbf") Then         
       'Skip thumbs.db and PSP.jbf files 
        iFileIndex = iFileIndex + 1 
        If (bConfirmEach) Then 
            sConfirmRename = LCase(InputBox("Rename " & oFile.Name & "?")) 
        Else 
            sConfirmRename = "y" 
        End If 
        If (sConfirmRename = "y") Then 
            oFile.Move (sRenamePath & "\" & sRenamePrefix & "_" & _ 
                ZeroFill(iFileIndex,Len(iFileCount)) & "." & sFileExtension) 
        End If 
    End If 
Next 
Set oFolder = Nothing 
Set oFSO = Nothing 
WScript.Echo "Done" 
WScript.Quit 
'======================================================================================
Function ZeroFill (sString, iFieldLength) 
    ZeroFill = Right(String(iFieldLength, "0") & Ltrim(sString), iFieldLength) 
End Function 

Edited by Refnex
Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...