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

Befehl um nur eine Datei unabhängig vom Dateinamen zu verschieben

Frage Entwicklung Batch & Shell

Mitglied: megamazl

megamazl (Level 1) - Jetzt verbinden

25.08.2008, aktualisiert 26.08.2008, 3955 Aufrufe, 4 Kommentare

Hallo Administrator-Gemeinde,

ich habe folgendes Problem, ich benötige den Befehl um eine Datei zu verschieben. Allerdings sollte aus einem Ordner der evtl. mehrere Dateien enthält nur eine Datei verschoben werden. Die Dateien in diesem Ordner können unterschiedliche Dateinamen haben. Im Moment sieht meine Batch so aus:

01.
:run  
02.
if exist \\192.168.1.2\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.2\C\watchin 
03.
if exist \\192.168.1.3\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.3\C\watchin 
04.
if exist \\192.168.1.4\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.4\C\watchin 
05.
if exist \\192.168.1.5\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.5\C\watchin 
06.
if exist \\192.168.1.6\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.6\C\watchin 
07.
if exist \\192.168.1.7\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.7\C\watchin 
08.
if exist \\192.168.1.8\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.8\C\watchin 
09.
if exist \\192.168.1.9\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.9\C\watchin 
10.
if exist \\192.168.1.10\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.10\C\watchin 
11.
if exist \\192.168.1.11\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.11\C\watchin 
12.
if exist \\192.168.1.12\C\CPUnotbusy.txt move C:\webcast\Aufnahme\test.txt \\192.168.1.12\C\watchin 
13.
sleep 200 
14.
goto run
die Batch soll also erstmal auf einem Zielrechner abfragen ob die Datei CPUnotbusy.txt vorhanden ist. Ist diese Datei vorhanden, soll EINE Datei aus dem Ordner C:\webcast\Aufnahme auf diesen Zielrechner verschoben werden. Danach soll der nächste Zielrechner abgefragt werden und evtl wieder EINE Datei verschoben werden. Das ganze läuft als Loop und soll auch funktionieren, wenn nach dem Start der Batch neue Dateien in den Ordner C:\webcast\Aufnahme hinzugefügt werden.

Hat jemand eine Idee?
Danke im voraus
Mitglied: bastla
25.08.2008 um 17:37 Uhr
Hallo megamazl!

Mein Idee sieht zunächst einmal vor, die Rechnernummer per Schleife zu vergeben - entweder, wie im Beispiel gezeigt, als laufende Nummer von 2 bis 12, oder indem in Zeile 3 alle infrage kommenden Rechner aufgelistet werden, also etwa:
01.
for %%i in (2 3 5 9 11 12) do (
Der Rest sieht so aus:
01.
@echo off & setlocal 
02.
:run  
03.
for /l %%i in (2,1,12) do ( 
04.
    if exist \\192.168.1.%%i\C\CPUnotbusy.txt ( 
05.
    set done= 
06.
    for %%f in (C:\webcast\Aufnahme\*.*) do if not defined done ( 
07.
        echo %%i: %%f 
08.
        move "%%f" \\192.168.1.%%i\C\watchin 
09.
        set done=true 
10.
11.
12.
13.
sleep 200 
14.
goto :run
Grüße
bastla
Bitte warten ..
Mitglied: megamazl
25.08.2008 um 20:34 Uhr
erstmal Danke für den Ansatz, allerdings verstehe ich diese Schleife nicht so ganz:

01.
set done=  
02.
for %%f in (C:\webcast\Aufnahme\*.*) do if not defined done (  
03.
echo %%i: %%f  
04.
move "%%f" \\192.168.1.%%i\C\watchin  
05.
set done=true 

Er verschiebt auch keine Datei.
Könntest du mir diese Schleife mal genauer erklären?
Bitte warten ..
Mitglied: bastla
25.08.2008 um 20:46 Uhr
Hallo megamazl!

Die Variable %done% wird als Schalter verwendet - wenn die erst(best)e Datei zum Rechner mit der IP 192.168.1.%%i verschoben wurde, sollen alle anderen, die sich aus dem Suchmuster "C:\webcast\Aufnahme\*.*" ergeben, nicht mehr verschoben werden.
Dies soll erreicht werden, indem der Schalter zunächst gelöscht wird ("set done=") und nach dem Verschieben der ersten Datei (mit einem beliebigen Inhalt) gesetzt wird. Für alle weiteren Dateien werden dann die Zeilen 7 bis 9 nicht mehr ausgeführt.
Ändere zum Testen das "echo off" in ein "echo on" und schau mal, ob Du so den Fehler findest (bei mir hat das nämlich funktioniert) ...

Grüße
bastla
Bitte warten ..
Mitglied: megamazl
26.08.2008 um 11:25 Uhr
tja, auf einmal funktioniert es, weiß auch nicht, woran es gelegen hat.
Vielen vielen Dank
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...