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

Datei eine Hierarchieebene nach oben verschieben per Batch

Frage Entwicklung Batch & Shell

Mitglied: a3rosol

a3rosol (Level 1) - Jetzt verbinden

31.01.2010 um 00:19 Uhr, 5207 Aufrufe, 17 Kommentare

Hallo liebe Admins,

ich habe da ein lästiges Problem, was sich hoffentlich mit eurer Hilfe beseitigen lässt.
Es existiert folgende Ordnerstruktur:

Videos
-Video 1
--Film
->Film.mov

und zwar in mehrfacher Ausführung (so viele, dass es zu lange dauern würde um es per Hand zu machen).
Wie der Titel sagt, soll (bzw sollen) alle Dateien im Unterordner "Film" in den Ordner "Video 1" (etc.) verschoben werden, und der Ordner "Film" bei Erfolg gelöscht werden.
Wie sähe das Script aus?

https://www.administrator.de/index.php?content=82989

Das Beispiel klappt bei mir nicht, bekomme nicht mal ne Fehlermeldung...
Schönes Wochenende noch!
Mitglied: AndreasBrecht
31.01.2010 um 07:27 Uhr
01.
  Dim fs, fld 
02.
  Set fs = CreateObject ("scripting.FileSystemObject") 
03.
 
04.
  For Each fld in In fs.Getfolder("Videos") .SubFolders   'da sollte der komplette Pfad übergeben werden  
05.
    fs.MoveFile fld.Path &"\Film.mov", "videos\Film.mov"   'siehe oben ;-) 
06.
    fs.DeleteFolder fld.Path 
07.
  Next fld
und das end tag vergessen - morgens um 7 halt
Bitte warten ..
Mitglied: miniversum
31.01.2010 um 10:27 Uhr
Hast du das Beispiel direkt an der cmd eingegeben oder in einer Batch verwendet?
Was passiert den? Hast du die Ausgabe?
Bitte warten ..
Mitglied: a3rosol
31.01.2010 um 10:33 Uhr
was ist das für eine Programmiersprache? VisualBasic? oder VbS? wie setze ich das um?
Bitte warten ..
Mitglied: a3rosol
31.01.2010 um 10:36 Uhr
ich habe das beispiel von Biber
01.
for /d %i in ("e:\todo\_ok\*.*") do @for /d %j in ("%i") do @echo move %j e:\todo\_ok
im cmd eingegeben und im Testodner hat sich nichts getan, und es sind auch keine Fehlermeldungen aufgetreten...
Bitte warten ..
Mitglied: miniversum
31.01.2010 um 10:59 Uhr
Durch das @echo sollte auch erstmal nicht wirklich etwas verschoben werden sondern nur eine Anzeige.

Versuchs mal damit:
01.
@for /d %i in ("e:\todo\_ok\*.*") do @for /d %j in ("%i") do @echo move "%~j\%~nxj.*" %j
Auch hier kommt erstmal nur eine Anzeige was passieren wird.
Wenn diese ausgabe passt kdan kannst du das echo entfernen
Bitte warten ..
Mitglied: AndreasBrecht
31.01.2010 um 11:33 Uhr
Das ist VB script geht aber auch in VBA da kann man dann sogar mit früüher Bindung arbeiten aber für den 4 Zeiler tut es auch so
Bitte warten ..
Mitglied: a3rosol
31.01.2010 um 12:08 Uhr
ist in Zeile 4 das In doppelt? Noch Zeile 4: muss zwischen ") und .SubFolders wirklich ein leerzeichen? und muss in zeile 7 das script nicht beendet werden? (Error: Anweisungsende erwartet...)
Bitte warten ..
Mitglied: a3rosol
31.01.2010 um 12:13 Uhr
http://picfront.de/d/7lti

da scheint was nicht richtig zu laufen...
vielleicht habe ich mich ja nicht richtig oder falsch ausgedrückt, deswegen versuche ich es nochmal
01.
durchsuche Verzeichnis rekursiv nach Ordnername "Film"; 
02.
nimm sämtliche Dateien aus dem Ordner und Verschiebe sie in den übergeordneten Ordner; 
03.
wenn alles Ok ist, lösche den Order "Film"; 
04.
Und alles nochmal beim Nächsten ;)
Bitte warten ..
Mitglied: miniversum
31.01.2010 um 12:28 Uhr
Ok. Ich ging davon aus das der Film in dm Ordner immer so geist wie der Ordner selbst.
Das löschen fehlte noch. Aber sonsnt scheint e doch zu passen?
Wenn es alle Dateien sein sollen dann so:
01.
@for /d %i in ("e:\todo\_ok\*.*") do @for /d %j in ("%i") do (@echo move "%~j\*.*" %j && @echo rd /Q %j)
Auch hier wird nur angezeigt was passieren wird. Wenn das gut aussieht dann das echo entfernen.
Oder ist der name FILM immer fest?
Dann könnte es (ungetestet) so funktionieren:
01.
@for /d %i in ("e:\todo\_ok\*.*") do (@echo move "%~i\FILM\*.*" %i && @echo rd /Q "%~i"%~i\FILM")
Bitte warten ..
Mitglied: a3rosol
31.01.2010 um 12:36 Uhr
es ändert sich immer nur der Überordner (Asterix I, Bad Boys etc) und die Dateinamen samt Dateityp im Ordner Film

Edit: auf den 2ten Vorschlag: es kommt immer die Rückmeldung "Mehr?"

Edit2: die Verzeichnisstruktur: http://picfront.de/d/7ltM
Bitte warten ..
Mitglied: miniversum
31.01.2010 um 12:54 Uhr
Also bei der Frage nach mehr kann ich auch nichts zu sagen. Aber es muss am rd liegen. Daher sollte es zumindest gehen wenn du es so versuchst:
01.
@for /d %i in ("e:\todo\_ok\*.*") do (@echo move "%~i\FILM\*.*" %i)
Die leeren Verzeichnisse bleiben dann allerdings.
Bitte warten ..
Mitglied: AndreasBrecht
31.01.2010 um 12:58 Uhr
Sorry das Leerzeichen ist in der Tat zu viel und das in ist doppelt (wenigstens sind alle Fehler in einer Zeile konzentriert)
und Nein ein End braucht es nicht (in VB script)
Bitte warten ..
Mitglied: a3rosol
31.01.2010 um 13:01 Uhr
hab jetzt den Befehl abgefeuert:
01.
@for /d %i in ("e:\Videos\*.*") do (move "%~i\FILM\*.*" %i)
Bei allen sagt er Syntaxfehler, nur beim letzten hats geklappt ;) (*freu*)
Bitte warten ..
Mitglied: a3rosol
31.01.2010 um 13:03 Uhr
er haut mir trotzdem um die Ohren, dass er in Zeile 7 Zeichen 8 das Anweisungsende erwartet (die anderen Fehlerchen hab ich behoben)...
Bitte warten ..
Mitglied: AndreasBrecht
31.01.2010 um 13:23 Uhr
Nochmal Sorry : lass einfach das fld hinter dem Next weg (das geht nur in richtigem VBA)
insgesamt war es Heute Morgen doch früher als ich dachte
Bitte warten ..
Mitglied: bastla
31.01.2010 um 13:51 Uhr
Hallo a3rosol!

Versuch mal:
@for /d %i in ("e:\Videos\*.*") do (move "%i\FILM\*.*" "%i" && rd "%i\FILM")
Grüße
bastla
Bitte warten ..
Mitglied: a3rosol
31.01.2010 um 14:00 Uhr
perfekt vielen dank an alle ;)
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Datei mit MV verschieben (13)

Frage von ForgottenRealm zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben (1)

Frage von MrRoyal zum Thema VB for Applications ...

Batch & Shell
gelöst Batch Datei zum verschieben von Dateien aus Unterordnern ? (10)

Frage von Ghostrider1911 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

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