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
GELÖST

Batch für Ordner des Vortages

Frage Entwicklung Batch & Shell

Mitglied: Tonibert

Tonibert (Level 1) - Jetzt verbinden

21.02.2011, aktualisiert 18.10.2012, 2941 Aufrufe, 11 Kommentare

Hallo Forum,

ich versuche von einem Netzlaufwerk ( O: )eine Datei zu kopieren.

Die Datei liegt in einem Ordner der immer nach JJJJMMTT benannt ist.
Ich möchte immer aus dem Ordner von gestern eine Datei test.txt auf ein anderes Laufwerk kopieren!

Leider fehlt mir komplett der Ansatz zur Ordnersuche etc.

Die Hilfe konnte meine Fragen leider auch nicht beantworten!

Bedanke mich schon mal für eure Hilfe!

Toni
Mitglied: bastla
21.02.2011, aktualisiert 18.10.2012
Hallo Tonibert!

In diesem Thread findest Du einen Ansatz für das Ermitteln des gestrigen Datums durch ein in den Batch integriertes VBScript, und eine globale Suche auf dem Laufwerk O: (warum ist es überhaupt erforderlich, das gesamte Laufwerk zu durchsuchen?) nach einem bestimmten Ordner ginge in einem Batch etwa so:
for /f "delims=" %%i in ('dir /s /b /ad "O:\%Ordnername%"') do set "Ordnerpfad=%%i"
Grüße
bastla
Bitte warten ..
Mitglied: Tonibert
21.02.2011 um 09:07 Uhr
Hallo Bastla und erstmal Danke für deine Zeit und Mühe,

Zur Erklärung:

Unter O:

werden täglich Ordner erstellt nach folgendem Format

20110218
20110219
20110220

und in jedem Ordner liegt jeweils meine Datei test.txt die ich mir kopieren muss/will.

Leider bin ich in Batch der totale Anfänger...Sorry
Bitte warten ..
Mitglied: bastla
21.02.2011 um 09:39 Uhr
Hallo Tonibert!

Wenn der Ordner nicht erst gesucht werden muss (sondern zB unmittelbar auf "O:\" liegt), könntest Du auch einfach den jüngsten Ordner, dessen Name zB mit "201" beginnt (funktioniert dann aber nur bis zum Jahr 2019 ), verwenden - etwa so:
01.
@echo off & setlocal 
02.
set "Ordnerpfad=" 
03.
for /d %%i in (O:\201*) do set "Ordnerpfad=%%~fi" 
04.
echo Zu kopierende Datei: "%Ordnerpfad%\test.txt"
Grüße
bastla
Bitte warten ..
Mitglied: Tonibert
21.02.2011 um 12:02 Uhr
OK ich fange an zu verstehen..und das möchte ich ja eben auch =)

Ich weise meiner Variblen "Ordnerpfad" den Wert zu, nachdem ich mittels

"for /d %%i in (O:\201*) do set "Ordnerpfad=%%~fi" "

den Pfad gefunden habe.Richtig?

Leider wird immer erst in der Nacht um 1 eine Datei in den Ordner von gestern geschrieben(also am 21.2.2011 um 1 Uhr nachts wird eine Datei in den Ordner 20112020 geschrieben), daher benötige ich eben immer Datei von gestern!
Bitte warten ..
Mitglied: bastla
21.02.2011 um 12:33 Uhr
Hallo Tonibert!

Eigentlich hatte ich vorhin (= bevor ich leider abgelenkt wurde ) zu folgender Variante raten wollen:
01.
@echo off & setlocal 
02.
set "Ordnerpfad=" 
03.
for /f "delims=" %%i in ('dir /b /ad /on O:\201* 2^>nul') do set "Ordnerpfad=O:\%%i" 
04.
if defined Ordnerpfad (echo Zu kopierende Datei: "%Ordnerpfad%\test.txt") else (echo Kein Ordner gefunden!)
- dadurch wird nämlich der (anhand des Namens sortierte) neueste Ordner gefunden ...

Grüße
bastla

[Edit] Anführungszeichen in Zeile 3 korrigiert [/Edit]
Bitte warten ..
Mitglied: Tonibert
22.02.2011 um 11:24 Uhr
Hallo bastla,

leider bekomme ich keine Ausgabe mit dem Quellcode! =(
Bitte warten ..
Mitglied: bastla
22.02.2011 um 11:30 Uhr
Hallo Tonibert!

Versuch es mit der korrigierten Version noch mal ...

Grüße
bastla
Bitte warten ..
Mitglied: Tonibert
22.02.2011 um 13:07 Uhr
Hallo und Danke auch an Biber!

Jetzt bekomme ich eine Ausgabe!

Problem: Die test.txt hat jeweils noch das Datum im Namen stehen und das benötige ich ja zum kopieren auch noch.

Die Datei (oder die Variable) müsste also so aussehen


O:\20110220\20110220_test.txt


Habt ihr dafür auch noch eine Lösung?

Vielen,vielen Dank!
Bitte warten ..
Mitglied: bastla
22.02.2011 um 13:15 Uhr
Hallo Tonibert!

Naja, wenn es mehr als eine Datei gibt, musst Du tatsächlich den Namen kennen - sonst würde auch ein
01.
... copy "%Ordnerpfad%\*_test.txt" "D:\Zielordner\"
genügen.

Wenn andererseits das Datum dem Ordnernamen entspricht, ginge das etwa so:
01.
@echo off & setlocal 
02.
set "Datum=" 
03.
for /f "delims=" %%i in ('dir /b /ad /on O:\201* 2^>nul') do set "Datum=%%i" 
04.
if defined Datum (echo Zu kopierende Datei: "O:\%Datum%\%Datum%_test.txt") else (echo Kein Ordner gefunden!)
Grüße
bastla
Bitte warten ..
Mitglied: Tonibert
22.02.2011 um 15:10 Uhr
Hallo Bastla,

SUPER!!!!!!!

Es funktioniert! Zur Vollständigkeit "meine" bat


@echo off & setlocal

set "Datum="


for /f "delims=" %%i in ('dir /b /ad /on O:\201* 2^>nul') do set "Datum=%%i"
if defined Datum (echo Zu kopierende Datei: "O:\%Datum%\%Datum%_test.txt") else (echo Kein Ordner gefunden!)

xcopy /E /S /Y O:\%Datum%\%Datum%_test.txt C:\99_20110220


Vielen Dank für deine Hilfe!
Bitte warten ..
Mitglied: Tonibert
25.02.2011 um 08:29 Uhr
Hallo Zusammen,

leider habe ich nun doch noch ein Problem!


Meine Ordner heißen immer wie das Datum z.B.


20110225 JJJJMMTT

aber meine Datein heißen leider so

110225_test.txt
JJMMTT


Habt ihr dafür auch noch eine Lösung???

Vielen Dank

Toni
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Batch Ordner erstellen und verschieben (6)

Frage von Fromeonly zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Batch & Shell
gelöst Per FTP-Shell oder Batch in ein unbekanten Ordner wechseln (8)

Frage von Ducky2 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...