Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung Batch & Shell

GELÖST

Batch, Dateien nach Endung suchen, kopieren und ggf umbenennen

Mitglied: jufe87

jufe87 (Level 1) - Jetzt verbinden

17.04.2009, aktualisiert 14:43 Uhr, 13302 Aufrufe, 9 Kommentare

Hallo!
Ich sitze schon eine ganze weile an dieser Batch-Datei, bekomme allerdings kein vernünftiges Ergebnis.

C:\ (mit Unterordnern) Soll nach *.blabla Dateien durchsucht werden und alle gefundenen sollen nach D:\ kopiert werden.
Dabei kann es auch sein, dass Dateinamen doppelt vorkommen, diese sollen dann ggf. geändert werden, sodass keine Datei überschrieben wird.
Ich habe mir das so überlegt, dass ich Die Uhrzeit mit milisekunden anhänge, damit es zu immer Unterschiedlichen namen kommt.
Dies klappt allerdings nicht, da pro Batch-Aufruf Immer die Selbe Zahl genommen wird.

Hier mein bisheriger code:

[code]
@echo off
REM Variablen Setzen
set dir=c:\
REM !!BITTE ENTSPRECHEND ANPASSEN!!
set file=*.blabla
set endung=.blabla
set pfad=D:
REM Erstellung der Zeitvariable
set h=%time:~0,2%
set m=%time:~3,2%
set s=%time:~6,2%
set ms=%time:~9,2%
set zeit=%date%_%h%h%m%m%s%s%ms%ms
REM Sucht nach Dateien und kopiert diese in einen Unterordner im oben angegebenen
REM Verzeichnis. Der Name des Unterordner Setzt sich aus
REM "Dateiname_Dateiendung_Datum_Uhrzeit mit milisekunde" zusammen.
for /r "%dir%" %%i in ("%file%") do (
if exist %%i xcopy "%%i" "%pfad%\%%~ni%endung%_%zeit%\" /V /S /I)
pause
[/code]

Jemand eine Idee?
Mitglied: LotPings
17.04.2009 um 15:19 Uhr
Klar, du setzt die Zeit statisch ausserhalb der Schleife einmal in die Variable.
Wie soll sich denn der Inhalt innerhalb der Schleife ändern?
Das ist doch kein Funktion die es in Batch eh nicht gibt.

Deine If Abfrage ist übrigends Lötzinn, deine Quell-Datei existiert immer.
Du kannst einen Teil in eine Subroutine verlagern, etwas so:

code übrigends mit spitzen Klammern.
01.
@echo off&setlocal EnableDelayedExpansion 
02.
set dir=c:\ 
03.
set file=*.blabla 
04.
set endung=.blabla 
05.
set pfad=D: 
06.
REM Sucht nach Dateien und kopiert diese in einen Unterordner im oben angegebenen 
07.
REM Verzeichnis. Der Name des Unterordner Setzt sich aus 
08.
REM "Dateiname_Dateiendung_Datum_Uhrzeit mit milisekunde" zusammen. 
09.
for /r "%dir%" %%i in ("%file%") do Call :Sub "%%~fi" "%%~ni" 
10.
pause 
11.
goto :EOF 
12.
:Sub 
13.
REM Erstellung der Zeitvariable 
14.
set zeit=%date%_%time::=% 
15.
set Ziel=%pfad%\%~2%endung% 
16.
if exist "%Ziel%" set Ziel=%Ziel%_%Zeit% 
17.
echo xcopy %1 "%Ziel%" /V /S /I
Ungestestet, wenn die Ausgabe richtig erscheint, das echo vor dem xcopy Befehl entfernen.

HTH

Gruß
LotPings
Bitte warten ..
Mitglied: hajowe
17.04.2009 um 15:30 Uhr
ja das ist was dran Zeit ausserhalb der Schleife verändert sich natürlich nicht.
Bitte warten ..
Mitglied: Biber
17.04.2009 um 15:48 Uhr
<OT>
Zitat von hajowe:
ja das ist was dran Zeit ausserhalb der Schleife verändert sich natürlich nicht.
Allerdings sind die Änderungen ausschließlich innerhalb einer Zeitschleife genauso unbefriedigend.
Siehe Und täglich grüßt das Murmeltier.

Schönes Wochenende
Biber
</OT>
Bitte warten ..
Mitglied: jufe87
17.04.2009 um 16:02 Uhr
Das ist es leider nur fast.
So werden Dateien zum Teil doppelt kopiert, was ich allerdings nicht so recht verstehe.
Bitte warten ..
Mitglied: LotPings
17.04.2009 um 17:01 Uhr
Zitat von jufe87:
Das ist es leider nur fast.
So werden Dateien zum Teil doppelt kopiert, was ich allerdings nicht
so recht verstehe.

Naja, er kopiert ja erst wenn der echo Befehl raus ist, das eine Datei schon da ist kann also (noch) nicht passieren. Habs jetzt getestet und noch angepasst, durch die Zielnamensänderung kommt sonst jedesmal die Frage ob Ziel eine Datei oder ein Verzeichnis ist.

01.
@echo off&setlocal 
02.
set dir=C:\ 
03.
set file=*.blabla 
04.
set endung=.blabla 
05.
set pfad=D:\ 
06.
for /r "%dir%" %%i in ("%file%") do Call :Sub "%%~fi" "%%~ni" 
07.
Pause 
08.
goto :EOF 
09.
:Sub 
10.
set zeit=%date:.=%_%time::=% 
11.
set Ziel=%pfad%\%~2 
12.
if exist "%Ziel%%endung%" set Ziel=%Ziel%_%Zeit:,=-% 
13.
Type NUL>"%Ziel%%endung%" 
14.
xcopy %1 "%Ziel%%endung%" /F /Y /C /H /V
Gruß
LotPings
Bitte warten ..
Mitglied: Biber
17.04.2009 um 17:03 Uhr
Zitat von jufe87:
Das ist es leider nur fast.
So werden Dateien zum Teil doppelt kopiert, was ich allerdings nicht so recht verstehe.
Moin jufe87,

willkommen im Forum.
Dieser Effekt wird durch den XCopy-Schalter "/s" wie in "works as designed" bewirkt.
Bei jedem
xcopy %1 "%Ziel%" /V /S /I
... wird ja die gefundene Datei %1 und alle gleichnamigen Quell-Dateien in Unterverzeichnissen darunter kopiert.
Aber die Dateien in Unterverzeichnissen triffst Du ja ohnehin später wieder im weiteren Verlauf der FOR /R-Rekursiv-Tour und kopierst sie nochmals.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
17.04.2009 um 17:36 Uhr
@LotPings
durch die Zielnamensänderung kommt sonst jedesmal die Frage ob Ziel eine Datei oder ein Verzeichnis ist.
Dem kannst Du vorbeugen, indem Du am Ende des Zieles noch einen Stern anfügst:
xcopy %1 "%Ziel%%endung%*" /F /Y /C /H /V
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
17.04.2009 um 17:54 Uhr
Zitat von bastla:
Dem kannst Du vorbeugen, indem Du am Ende des Zieles noch einen Stern anfügst:

Danke bastla,
den kannte ich nicht (mehr, Alzheimer lässt grüßen

@Biber
das passiert wenn kann Codeteile ungeprüft übernimmt,
aber meine Änderung erschlägt auch das, den /S hatte ich rausgenommen.

Gruß
LotPings
Bitte warten ..
Mitglied: jufe87
20.04.2009 um 08:13 Uhr
Also nach kurzem Test scheints super zu funktionieren.

Besten Dank!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Datei-Endungen, Listen und Sortierung (Batch)
gelöst Frage von clragonBatch & Shell5 Kommentare

Hallo Leute, Ich habe ein kompliziertes ( so wie eigentlich immer, und kompliziert natürlich subjektiv ) Effizienz-Problem. Ich versuch ...

Batch & Shell
Mittels Batch Ordner umbenennen und Dateien kopieren
gelöst Frage von held.christophBatch & Shell12 Kommentare

Guten Tag allerseits Ich bin absoluter Leihe und konnte Dank mehr oder weniger grossen Suche in den Foren bereits ...

Windows 7
Windows 7 Suche in Dateien ohne Endung
gelöst Frage von markymark76Windows 74 Kommentare

Hallo. Ein Windows 7 (64)-System verwaltet für eine Fräsmaschine die erstellten Programme übers Netzwerk: Die erstellten Fräsprogramme werden auf ...

Batch & Shell
Verzeichniss überwachen Datei kopieren und umbenennen
gelöst Frage von fischle63Batch & Shell6 Kommentare

Hallo, Habe folgendes Problem: In einem Verzeichniss sind Dateien mit dem Suffix ".nd" enthalten. Bsp. "00000010.nd" Ich brauche eine ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...