Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Variable Dateien verschieben nach Abgleich

Frage Entwicklung Batch & Shell

Mitglied: pingu256

pingu256 (Level 1) - Jetzt verbinden

19.11.2008, aktualisiert 18:37 Uhr, 3766 Aufrufe, 7 Kommentare

Hi,

hat jemand einen Tipp für mich wie ich folgendes Problem lösen kann:

In einem Verzeichnis c:\data werden nacheinander (Abstand ca. 2-5 Min.) immer zwei Dateien abgelegt die den gleich Dateinamen aber eine andere Endung haben.

Beispiel:

12345.pdf und 12345.pd$

oder

54321.pdf und 54321.pd$

Wie kann ich einen Scheduler programmieren der mir jede Minute über dieses Verzeichnis läuft und nachschaut ob ein Datenpaar vorhanden ist. Wenn beide Dateien da sind sollen diese in ein anderes Verzeichnis verschoben werden.

Der Dateiname ändert sich jedes mal nur die die Endung ist jedes mal gleich (pdf & pd$).

Gruß
Pingu256
Mitglied: Ren
19.11.2008 um 16:03 Uhr
Skizze:
01.
@echo off 
02.
set "verzeichnis=e:\pdfs" 
03.
set "ziel=e:\ziel" 
04.
:loop 
05.
FOR /F "delims=" %%i IN ('dir %verzeichnis%\*.pdf /b') DO call :handle "%%i" 
06.
ping -w 60000 1.1.1.1 -n 1 >nul 
07.
goto :loop 
08.
 
09.
:handle 
10.
set "file=%~1" 
11.
set "file2=%~n1.pd$" 
12.
if exist "%verzeichnis%\%file2%" copy "%verzeichnis%\%file2%" "%ziel%\%file2%" & copy "%verzeichnis%\%file%" "%ziel%\%file%" & goto :eof 
13.
goto :eof 
14.
 
15.
 
16.
:ende
Problem: wenn es mehr Dateien werden, werden alle immer kopiert. ;)
Zitat von pingu256:
nachschaut ob ein Datenpaar vorhanden ist. Wenn beide Dateien da sind sollen diese in ein anderes Verzeichnis verschoben werden.
Das sollte die Batch aber tun...
Bitte warten ..
Mitglied: bastla
19.11.2008 um 16:15 Uhr
@Ren
Problem: wenn es mehr Dateien werden, werden alle immer kopiert. ;)
... außer, es würde (wunschgemäß) verschoben ...

Abgesehen davon wäre anzumerken, dass ein "dir /b" (ohne "/s") keinen vollständigen Pfad, sondern nur die Dateinamen liefert - insofern wäre ein
pushd "%verzeichnis%"
vorneweg und das zugehörige
popd
am Ende der einfachere Weg.

Grüße
bastla
Bitte warten ..
Mitglied: Ren
19.11.2008 um 16:21 Uhr
Ich hatte kopiert gelesen, ich bin schon müde. Aber das sollte ja kein Ding sein, ersetzt man copy durch move, wenn man sich sicher ist, dass im Zielverzeichnis nichts kaputt gehen kann, move /y. Sonst müsste man halt vorher noch nachsehen, ob die Datei schon existiert.
01.
@echo off 
02.
set "verzeichnis=e:\pdfs" 
03.
set "ziel=e:\ziel" 
04.
:loop 
05.
FOR /F "delims=" %%i IN ('dir %verzeichnis%\*.pdf /b') DO call :handle "%%i" 
06.
ping -w 60000 1.1.1.1 -n 1 >nul 
07.
goto :loop 
08.
 
09.
:handle 
10.
set "file=%~1" 
11.
set "file2=%~n1.pd$" 
12.
if exist "%verzeichnis%\%file2%" move /y "%verzeichnis%\%file2%" "%ziel%\%file2%" & move /y "%verzeichnis%\%file%" "%ziel%\%file%" & goto :eof 
13.
goto :eof 
14.
 
15.
 
16.
:ende
Bitte warten ..
Mitglied: bastla
19.11.2008 um 16:25 Uhr
@Ren
"move" mit "/y" ist nur am Commandprompt erforderlich - in Batch wird automatisch überschrieben.

Grüße
bastla
Bitte warten ..
Mitglied: Ren
19.11.2008 um 16:42 Uhr
aha. Man lernt täglich etwas neues!
Bitte warten ..
Mitglied: pingu256
19.11.2008 um 18:37 Uhr
Geil vielen Dank!!! Läuft !!!
Bitte warten ..
Mitglied: pingu256
03.02.2009 um 11:53 Uhr
Zitat von Ren:
Ich hatte kopiert gelesen, ich bin schon müde. Aber das sollte ja
kein Ding sein, ersetzt man copy durch move, wenn man sich sicher ist,
dass im Zielverzeichnis nichts kaputt gehen kann, move /y. Sonst
müsste man halt vorher noch nachsehen, ob die Datei schon
existiert.
01.
> @echo off 
02.
> set "verzeichnis=e:\pdfs" 
03.
> set "ziel=e:\ziel" 
04.
> :loop 
05.
> FOR /F "delims=" %%i IN ('dir %verzeichnis%\*.pdf 
06.
> /b') DO call :handle "%%i" 
07.
> ping -w 60000 1.1.1.1 -n 1 >nul 
08.
> goto :loop 
09.
>  
10.
> :handle 
11.
> set "file=%~1" 
12.
> set "file2=%~n1.pd$" 
13.
> if exist "%verzeichnis%\%file2%" move /y 
14.
> "%verzeichnis%\%file2%" "%ziel%\%file2%" & 
15.
> move /y "%verzeichnis%\%file%" "%ziel%\%file%" 
16.
> & goto :eof 
17.
> goto :eof 
18.
>  
19.
>  
20.
> :ende 
21.
> 



Hi,

hat jemand ne Idee wie ich das Script am geschicktesten verändere wenn ich mehrere Verzeichnisse überwachen möchte?


Aktuell sieht der Code so aus und ich überwache Verzeichnis 1 .. hinzu sollen Verzeichnis 2 bis 7 auch überwacht werden sowie die Dateien entsprechen kopiert werden

01.
@echo off 
02.
set "verzeichnis=E:\pool\archiv\1" 
03.
set "ziel=x:\ep1\010\" 
04.
set "ziel2=e:\pool\ablage\1" 
05.
:loop 
06.
FOR /F "delims=" %%i IN ('dir %verzeichnis%\*.pdf /b') DO call :handle "%%i" 
07.
ping -w 10000 1.1.1.1 -n 1 >nul 
08.
goto :loop 
09.
 
10.
:handle 
11.
set "file=%~1" 
12.
set "file2=%~n1.pd$" 
13.
if exist "%verzeichnis%\%file2%"  
14.
	copy /y "%verzeichnis%\%file%" "%ziel%\%file%" &  
15.
	copy /y "%verzeichnis%\%file2%" "%ziel%\%file2%" &  
16.
	move /y "%verzeichnis%\%file%" "%ziel2%\%file%" &  
17.
	move /y "%verzeichnis%\%file2%" "%ziel2%\%file2%" &  
18.
	goto :eof 
19.
	goto :eof 
20.
:ende 
21.
 
Danke!!!
Gruß

pingu256
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst For Schleife für Abgleich mit Text-Datei und Unterverzeichnisse (4)

Frage von grisur zum Thema Batch & Shell ...

Batch & Shell
Datei nach Erstellungsdatum verschieben (2)

Frage von Kugelschreiber1 zum Thema Batch & Shell ...

Windows 7
gelöst Dateien verschieben Sicheheitswarnung Aktivieren (1)

Frage von Krabbelfiechle zum Thema Windows 7 ...

Batch & Shell
Dateien nach Datum verschieben (4)

Frage von LKDNDK12 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...