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

Variable Dateien verschieben nach Abgleich - Erweitert

Frage Entwicklung Batch & Shell

Mitglied: pingu256

pingu256 (Level 1) - Jetzt verbinden

03.02.2009, aktualisiert 12:04 Uhr, 2798 Aufrufe, 4 Kommentare

http://www.administrator.de/index.php?content=102197#406978

Hallo zusammen ich habe erneut eine Frage zu folgender Problemstellung
-> http://www.administrator.de/index.php?content=102197#406978



hier die damalige Lösung

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.
> 



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
Mitglied: 60730
03.02.2009 um 17:35 Uhr
Servus,

ich hab mir das nur grob durchgelesen und auch nicht weitergeklickt.

Daher mal als Denkansatz - den ganzen Abfragekram umzustellen:
eine neue Batch mit z.B diesem Inhalt und der aktuelle Code als verschieben.cmd angenommen - ungefähr so:

01.
if exist E:\pool\archiv\1\*.pdf call verschieben.cmd E:\pool\archiv\1" "x:\ep1\010\" "e:\pool\ablage\1" 
02.
if exist E:\pool\archiv\2\*.pdf call verschieben.cmd E:\pool\archiv\2"  "x:\ep1\010\" "e:\pool\ablage\2"
Und dann die "verschieben.cmd" ungefähr so:
01.
@echo off 
02.
set "verzeichnis=%%1" 
03.
set "ziel=%%2" 
04.
set "ziel2=%%3"" 
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
gruß
Bitte warten ..
Mitglied: pingu256
03.02.2009 um 19:12 Uhr
die Abfrage soll permanent auf dem Server laufen alle 10 Sekunden .. kann das mit dem Script gewärleistet werden??

Wie müsste es dan aussehen?



Gruß
pingu256
Bitte warten ..
Mitglied: bastla
03.02.2009 um 19:20 Uhr
Hallo pingu256!

(Ungetestet) etwa so:
01.
@echo off & setlocal 
02.
set "verzeichnisse=E:\pool\archiv\1,E:\pool\archiv\2,E:\pool\archiv\3,E:\pool\archiv\4,E:\pool\archiv\5,E:\pool\archiv\6,E:\pool\archiv\7" 
03.
set "ziel=x:\ep1\010\" 
04.
set "ziel2=e:\pool\ablage\1" 
05.
:loop 
06.
for %%a in (%verzeichnisse%) do  
07.
    for /f "delims=" %%i in ('dir "%%~a\*.pdf" /b') do call :handle "%%i" "%%a" 
08.
    ping -w 10000 1.1.1.1 -n 1 >nul 
09.
10.
goto :loop 
11.
 
12.
:handle 
13.
set "file=%~1" 
14.
set "file2=%~n1.pd$" 
15.
if exist "%2\%file2%" ( 
16.
	copy "%2\%file%" "%ziel%\" 
17.
	copy "%2\%file2%" "%ziel%\" 
18.
	move "%2\%file%" "%ziel2%\" 
19.
	move "%2\%file2%" "%ziel2%\" 
20.
21.
goto :eof
Soferne sich auch das jeweilige Ziel ändern muss, es aber eine entsprechende Systematik in den Ordnernamen (nämlich jeweils nur die laufende Nummer 1 bis 7) gibt, etwa so:
01.
@echo off & setlocal 
02.
set "basisverzeichnis=E:\pool\archiv" 
03.
set "ziel=x:\ep1\010\" 
04.
set "basisziel2=e:\pool\ablage" 
05.
:loop 
06.
for /L %%a in (1,1,7) do  
07.
    for /f "delims=" %%i in ('dir "%basisverzeichnis%\%%a\*.pdf" /b') do call :handle "%%i" %%a 
08.
    ping -w 10000 1.1.1.1 -n 1 >nul 
09.
10.
goto :loop 
11.
 
12.
:handle 
13.
set "file=%~1" 
14.
set "file2=%~n1.pd$" 
15.
if exist "%basisverzeichnis%\%2\%file2%" ( 
16.
	copy "%basisverzeichnis%\%2\%file%" "%ziel%\" 
17.
	copy "%basisverzeichnis%\%2\%file2%" "%ziel%\" 
18.
	move "%basisverzeichnis%\%2\%file%" "%basisziel2%\%2\" 
19.
	move "%basisverzeichnis%\%2\%file2%" "%basisziel2%\%2\" 
20.
21.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: pingu256
03.02.2009 um 20:03 Uhr
werde ich morgen direkt mal testen


merci !!

Gruß
pingu256
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

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

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

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 ...