Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Suche eine Batch,Tool oder Programm zum umbenennen von Dateien

Frage Entwicklung Batch & Shell

Mitglied: Delobo

Delobo (Level 1) - Jetzt verbinden

01.12.2013 um 12:41 Uhr, 3485 Aufrufe, 5 Kommentare

Hallo Gemeinde

Ich habe folgendes Problem

Von meinem Brother Drucker Scanner Kommen die Daten in einen Ordner ( C:\Users\xxxxx\Desktop\Scanner )da liegen sie mit dem namen 01.12.2013.0001.pdf nun binde ich die Datei in ein Programm ein das Programm löscht die Datei dann im Scanner Ordner und legt die Datei in einer Datenbank ab das soll es auch das ist alles auch gut so nun das Problem.
Die nächste PDF die ich ein scanne heißt leider auch wieder 01.12.2013.001.pdf und damit erkennt mein Programm die Datei nicht an und legt sie nicht in der Datenbank ab weil der Name schon vorhanden ist.
Nun meine frage gibt es eine Batch,Tool oder Programm was meinen Ordner ( C:\Users\xxxxx\Desktop\Scanner ) überwacht und wenn die PDF 01.12.2013.001.pdf rein kommt sie automatisch umbenennt in 01.12.2013.12.32.44.pdf ( Datum.Uhrzeit mit sec.pdf) ?

MFG

Delobo
Mitglied: MrNetman
01.12.2013 um 13:25 Uhr
mit batch geht das.
Du kannst aber auch ein einfaches Tools nehmen: Ant renamer http://www.chip.de/downloads/Ant-Renamer_18204061.html
Viele Dinge gehen damit einfacher

Gruß
Netman
Bitte warten ..
Mitglied: loonydeluxe
01.12.2013, aktualisiert um 13:32 Uhr
Hi,

falls du etwas Programmierkenntnisse hast, kannst du mit VB.NET Express oder C# Express die FilesystemWatcher-Komponente benutzen und mit den Funktionen aus System.File die Datei umbenennen.

Alternativ kannst du dir einen Task anlegen, der alle 1 Minute wiederholt wird. Dieser sollte dann eine Batch-Datei aufrufen, welche mit ForFiles für jede Datei einen Befehl ausführt. Dann bei ForFiles als Befehl "ren @ path "@fname.%uhrzeit%.@ext".
Für %uhrzeit% musst du vorher "nur noch" den aktuelle Zeitstempel - bereinigt um Sonderzeichen wie z. B. ":" - einsetzen. Das kannst du am Anfang der Batch-Datei per set-Befehl setzen.

Informationen zur Verwendung von ForFiles gibts hier: http://ss64.com/nt/forfiles.html

Grüße, loonydeluxe
Bitte warten ..
Mitglied: Endoro
01.12.2013 um 13:58 Uhr
Hey, Vorschlag für ein System mit deutschen Formaten:
01.
@ECHO OFF &SETLOCAL 
02.
cd /d "%userprofile%\Desktop\Scanner" 
03.
:loop 
04.
rem 10 Sekunden warten 
05.
ping -n 10 localhost >nul 
06.
rem wenn  01.12.2013.0001.pdf nicht vorhanden, zurück 
07.
if not exist "%date%.0001.pdf" goto:loop 
08.
rem ansonsten umbenennen, sec100 entfernen 
09.
set "MyTime=%time:~0,8%" 
10.
rem vorm umbenennen ":" in "." umwandeln 
11.
ren "%date%.0001.pdf" "%date%.%MyTime::=.%.pdf" 
12.
rem und von vorn 
13.
goto:loop
lg.
Bitte warten ..
Mitglied: colinardo
01.12.2013, aktualisiert 17.03.2014
Hallo Delobo,
hierzu kannst du folgendes VB-Script nutzen, welches einmal gestartet, im Hintergrund den entsprechenden Ordner dauerhaft überwacht und in einem bestimmten Intervall das du in Zeile 4 angibst die entsprechende Datei umbenennt. Den zu überwachenden lokalen Pfad gibst du in Zeile 2 an (ohne Backslash am Ende)
01.
'Pfad der zu überwachen ist 
02.
Const strPath = "C:\temp\source" 
03.
'Überwachungs-Interval in Sekunden 
04.
Const intInterval = "5" 
05.
'------------------------------ 
06.
strDrive = Split(strPath,"\")(0) 
07.
strFolder = Replace(Split(strPath,":")(1),"\","\\") & "\\" 
08.
 
09.
Set fso = WScript.CreateObject("Scripting.Filesystemobject") 
10.
Set objShell = CreateObject("Wscript.Shell") 
11.
Set objWMIService = GetObject( "winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2" ) 
12.
 
13.
strQuery = "Select * From __InstanceOperationEvent" _ 
14.
    & " Within " & intInterval _ 
15.
    & " Where Targetinstance Isa 'CIM_DataFile'" _ 
16.
    & " And TargetInstance.Drive='" & strDrive & "'"_ 
17.
    & " And TargetInstance.Path='" & strFolder & "'" 
18.
 
19.
Set colEvents = objWMIService.ExecNotificationQuery (strQuery)  
20.
 
21.
Do  
22.
    Set objEvent = colEvents.NextEvent() 
23.
    Set objTargetInst = objEvent.TargetInstance 
24.
     
25.
    Select Case objEvent.Path_.Class  
26.
        Case "__InstanceCreationEvent"  
27.
            filename = objTargetInst.Name  
28.
            If LCase(Right(filename,7)) = "001.pdf" Then 
29.
				datum = Replace(Replace(Now(),":",".")," ",".") 
30.
				newFileName = datum & ".pdf" 
31.
				Set f = fso.GetFile(filename) 
32.
				f.Name = newFileName 
33.
			End If  
34.
    End Select  
35.
 
36.
Loop
Zur Info: Das Script gibt keinerlei Ausgaben aus, wenn es gestartet wird, d.h. es läuft direkt im Hintergrund und Überwacht den Ordner kontinuierlich. Du erkennst das Script im Taskmanger als Task mit dem Prozessnamen wscript.exe, oder wenn es via cscript aufgerufen wurde mit cscript.exe.
Zu Beachten: Das Script benennt nur neu hinzukommende Dateien um, die seit dem Start des Scriptes hinzugekommen sind.

Grüße Uwe
Äquivalentes Script in Powershell
01.
<# 
02.
    Monitors folder for new files and renames specific files 
03.
#> 
04.
# Variables ------------------------- 
05.
# local folder path to monitor 
06.
    $localFolderPath = "C:\Temp\source"  
07.
# interval to check for changes 
08.
    $intMonitorInterval = 2 
09.
# file pattern in folder to monitor 
10.
    $strFilePattern = "%001.pdf" 
11.
# ----------------------------------- 
12.
 
13.
# get seperate drive and path for wql query specific formatting 
14.
$strDrive = $localFolderPath.Split("\")[0] 
15.
$localFolderPath.TrimEnd("\") 
16.
$strPath = $localFolderPath.Split(":")[1].Replace("\","\\")+"\\" 
17.
 
18.
# action fired when event occurs 
19.
$eventaction = { 
20.
    #object which fired the event 
21.
    $obj = $Event.SourceEventArgs.NewEvent.TargetInstance 
22.
     
23.
    #create reference to a wmi-Object to get access to a function which converts wmi-datetime-strings to .net DateTime-Object 
24.
    $objWMI = (gwmi -Class "Win32_Process")[0] 
25.
    $fileModifiedDate = $objWMI.ConvertToDateTime($obj.LastModified) 
26.
    #new filename 
27.
    $newName = "$(get-date $fileModifiedDate -Format 'dd.MM.yyyy HH.mm.ss').pdf" 
28.
    #rename the file 
29.
    Rename-Item -Path $obj.Name -NewName $newName 
30.
    #write some info to the console 
31.
    write-host "Neue Datei im Ordner: '"$obj.Name"' wurde umbenannt in '"$newname"'" 
32.
33.
 
34.
# WQL Query which monitors a folder every x seconds for a new file appearing with a specific filename 
35.
$query = "Select * From __InstanceCreationEvent WITHIN $intMonitorInterval` 
36.
          where TargetInstance ISA 'CIM_DataFile'` 
37.
          and TargetInstance.Drive = '$strDrive'` 
38.
          and TargetInstance.Path = '$strPath'` 
39.
          and TargetInstance.Name like '$strFilePattern'" 
40.
 
41.
#actually register Event-Subscriber 
42.
Register-WmiEvent -query $query -SourceIdentifier "Monitor Folder Watcher" -action $eventaction 
43.
 
44.
# to end monitoring the event, call 
45.
# Unregister-Event -SourceIdentifier "Monitor Folder Watcher"
Bitte warten ..
Mitglied: rubberman
01.12.2013, aktualisiert um 14:27 Uhr
Hallo colinardo,

fast genauso hatte ich es eben auch zusammen geschrotet. Du warst schneller

01.
Option Explicit 
02.
 
03.
Const Path = "%userprofile%\Desktop\Scanner" 
04.
Const FindLike = "%.001.pdf" 
05.
Const Interval = 1 
06.
 
07.
Dim objWSH, objFSO, objWMI, objEvent, colEvents 
08.
Dim strPath, strDrive, strFolder, strFoundFullName, strFoundCreationDate, _ 
09.
  strYear, strMonth, strDay, strHour, strMinute, strSecond, strNewFullName 
10.
 
11.
Set objWSH = CreateObject("WScript.Shell") 
12.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
13.
objWSH.CurrentDirectory = objFSO.GetParentFolderName(WScript.ScriptFullName) 
14.
strPath = objWSH.ExpandEnvironmentStrings(Path) 
15.
strPath = objFSO.GetAbsolutePathName(strPath) 
16.
If Not objFSO.FolderExists(strPath) Then 
17.
  MsgBox "Verzeichnis existiert nicht." 
18.
  WScript.Quit 
19.
End If 
20.
strDrive = objFSO.GetDriveName(strPath) 
21.
strFolder = Replace(Mid(strPath, 3) & "\", "\", "\\", 1, -1, vbTextCompare) 
22.
 
23.
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
24.
Set colEvents = objWMI.ExecNotificationQuery( _ 
25.
  "SELECT * FROM __InstanceCreationEvent" _ 
26.
  & " WITHIN " & CStr(Interval) _ 
27.
  & " WHERE Targetinstance ISA 'CIM_DataFile'" _ 
28.
  & " AND TargetInstance.Drive='" & strDrive & "'" _ 
29.
  & " AND TargetInstance.Path='" & strFolder & "'" _ 
30.
  & " AND TargetInstance.Name LIKE '" & FindLike & "'") 
31.
 
32.
Do 
33.
  Set objEvent = colEvents.NextEvent() 
34.
  strFoundFullName = objEvent.TargetInstance.Name 
35.
  strFoundCreationDate = objEvent.TargetInstance.CreationDate 
36.
  strYear = Mid(strFoundCreationDate, 1, 4) 
37.
  strMonth = Mid(strFoundCreationDate, 5, 2) 
38.
  strDay = Mid(strFoundCreationDate, 7, 2) 
39.
  strHour = Mid(strFoundCreationDate, 9, 2) 
40.
  strMinute = Mid(strFoundCreationDate, 11, 2) 
41.
  strSecond = Mid(strFoundCreationDate, 13, 2) 
42.
  strNewFullName = objFSO.BuildPath(objFSO.GetParentFolderName(strFoundFullName), _ 
43.
    strDay & "." & strMonth & "." & strYear & "." & strHour & "." & strMinute & "." & strSecond & ".pdf") 
44.
  objFSO.MoveFile strFoundFullName, strNewFullName 
45.
Loop
Grüße
rubberman
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Tools
Suche Batch Scheduler (.bat .cmd .exe) (8)

Frage von hf1965 zum Thema Windows Tools ...

Windows Tools
gelöst Tool um neue Dateien aus Ordner A EINMAL in Ordner B zu kopieren (6)

Frage von Archimedes zum Thema Windows Tools ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...