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, 3967 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 ..
Ähnliche Inhalte
Batch & Shell
Datei nach Erstellungsdatum verschieben (2)

Frage von Kugelschreiber1 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows Server
gelöst Exchange HyperV Prozessorlast (19)

Frage von theoberlin zum Thema Windows Server ...

Windows Server
Server mit Netzwerkaussetzern (18)

Frage von SarekHL zum Thema Windows Server ...

Netzwerke
Vorschlag Hotelverkabelung (14)

Frage von FA-jka zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Batchdatei um einen Proxy einzustellen (14)

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