cali169
Goto Top

Dateien via batch script kopieren und Dateien anschliessend löschen

Hallo,

hoffe auf hilfe, habe schon nach einer lösung gesucht aber nichts gefunden.

vielen dank im voraus.

ich möchte gern Dateien via batch script kopieren und anschliessend löschen.

wenn ich in der cmd console folgendes eingebe funktioniert das kopieren

xcopy "Y:\DB Sicherung täglich\test\DB\NODE0000\CATN0000\*.*" /e F:\test\DB\NODE0000\CATN0000\

wenn ich diese nun als text datei erstelle und als bat speicher, anschliessend durch einen doppelklick auf die bat datei ausführen möchte passiert nichts.

ich erhalte auch keine fehlermeldung.

auf dem lw y und f hat jeder alle rechte. ich bin als admin angemeldet auch dieser hat auf beieden lw's volle berechtigung.

trotzdem funktioniert es als bat nicht.

wie kann man das problem lösen?

Content-Key: 135404

Url: https://administrator.de/contentid/135404

Printed on: April 16, 2024 at 15:04 o'clock

Member: Tommy70
Tommy70 Feb 08, 2010 at 08:12:55 (UTC)
Goto Top
Und was passiert wenn die bat-Datei nicht mit Doppelklick startest sonder ein cmd startest und dort in den Ordner mit der bat wechselst und diese dann im CMD-Fenster startest.
Member: laster
laster Feb 08, 2010 at 08:22:06 (UTC)
Goto Top
Hallo,

die Datei hat im Dateisystem einen 'richtigen' Namen, wie z.B. test.bat, da steht die Zeile drin, und wenn Du die Datei startest (doppelt anklickst) passiert nix?

vG LS
Member: mischn1980
mischn1980 Feb 08, 2010 at 08:31:52 (UTC)
Goto Top
Hi,

hast du die batch auch schon mal über die Kommandozeile ausgeführt?

Wenn nicht mach das mal. Da bekommst du zumindest mal Rückmeldungen.

Gruss

Michael
Member: Biber
Biber Feb 08, 2010 at 08:49:08 (UTC)
Goto Top
Moin cali169,

der Quellordner wird vermutlich in deinem Batch nicht gefünden, weil die Codepage-Einstellung nicht stimmt.
Der Quellordner liegt irgendwo unterhalb von "Y:\DB Sicherung täglich"... und an dem "ä" in "täglich" wird es klemmen.
2 Fehlerquellen prüfen:

a) die Codepage vorher auf mit "CHCP1252" auf Codepage 1252 (Windows) setzen [siehe Forumssuche]
b)
Du schreibst ja:
wenn ich diese nun als text datei erstelle und als bat speicher
Prüfen, mit welchem Editor du das machst und ob der das Textformat als ASCII/DOS oder als ANSI/Windows speichert.

Persönliche Meinung: meide unnötigen Stress und nimm als Ordnernamen "Y:\DB Backup Daily" oder "Y:\DB Sicherung taeglich" oder"..."Y:\Db-Sicherung JedenTach".
Wenn es sonst keine Seiteneffekte hat... ich weiß ja nicht, wieviel andere Programme dafür angepasst werden müssen.

Grüße
Biber
Member: cali169
cali169 Feb 08, 2010 at 10:43:33 (UTC)
Goto Top
danke für das feedback, sobald ich etwas luft habe werde ich der sache weiter nachgehen.

leider kann ich den pfadnamen nicht einfach ändern, werde aber in die richtung des umlauts suchen, glaube auch das es in dieser richtung

klemmt. (den umlaut hatte ich irgendwie ausgeblendet, die leerzeichen habe ich ja durch " " abgefangen.
Mitglied: 60730
60730 Feb 08, 2010 at 13:41:06 (UTC)
Goto Top
Servus,

im gleichen Atemzug wie Biber es schon beschrieben hat - reicht auch ein simples
dir /x y:\db*
um herauszufinden, ob es sich beim "täglichen" Ordner um denjenigen handelt, der sich auch als DBSICH~1 meldet.

Gruß
Member: cali169
cali169 Mar 15, 2010 at 11:07:37 (UTC)
Goto Top
hallo zusammen,

ich habe den Pfad angepasst und die DB2 Sicherung umgestellt. Somit funktioniert jetzt das Script mit dem kopieren. (es waren definitiv die umlaute)

xcopy "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\*.*" /e F:\test.0\DB2\NODE0000\CATN0000\

was leider nicht funktioniert ist das löschen, wenn ich den Befehl in der cmd eingebe dann wird mir aber auch kein Fehler ausgegeben.

del /Q "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\*.*"

die Dateien werden nicht gelöscht, auf den Ordner hat jeder volle Berechtigung.

wie kann ich das Problem beheben?
Mitglied: 60730
60730 Mar 15, 2010 at 11:12:04 (UTC)
Goto Top
Moin,

wenn
del /Q "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\
nicht funktioniert - dann sollte ein

rd /s /Q "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\"
md "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\"
funktionieren.

Gruß
Member: cali169
cali169 Mar 15, 2010 at 11:36:11 (UTC)
Goto Top
re-moin,

vielen Dank für die schnelle Antwort, leider funktioniert es noch nicht ganz.

wenn ich das

rd /s /Q "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\"

als script laufen lasse wird mir leider auch der Ordner CATN0000 mit gelöscht, dieser sollte aber

stehen bleiben und nur die Ordner in CATN0000 sollten gelöscht werden.

Die Ordner in CATN0000 haben jeden Tag das Datum des gestrigen Tages als Inhalt. *.* hilft mir hier nicht habe ich schon ausprobiert.

Hast Du dafür evtl. noch eine Lösung?

Vielen Dank im Voraus.

Gruss
Mitglied: 60730
60730 Mar 15, 2010 at 11:48:39 (UTC)
Goto Top
mooment,

ich hab dir einen zweiteiligen Tipp gegeben

  • Ordner incl Unterordner und Dateien löschen
  • Ordner wieder neu anlegen

Aber - was genau willst du denn oben schreibst du Dateien werden nicht gelöscht - nun sinds Ordner - die nicht gelöscht werden?

del /S/Q
Member: cali169
cali169 Mar 15, 2010 at 12:39:57 (UTC)
Goto Top
sry, bin da wohl etwas durcheinander gekommen beim schreiben, es werden Ordner inkl. Inhalt im Ordner CATN0000 erstellt.

diese werden kopiert (funktioniert) und anschliessend sollen die Ordner inkl. Inhalt gelöscht werden.

der tip md "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\" erstellt mir aber keinen Ordner.
Member: Biber
Biber Mar 15, 2010 at 12:50:47 (UTC)
Goto Top
Moin cali169,

bitte recherchiere mal kurz mit "rd /?" bzw "del /?" am CMD-Prompt.
Lass uns danach weiterchatten.

Grüße
Biber
Member: cali169
cali169 Mar 15, 2010 at 13:20:35 (UTC)
Goto Top
re moin biber,

also gebe ich den befehl md "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\"

direkt in der cmd ein wird der ordner erstellt, via script wird der Ordner aber nicht erstellt.. es ist egal ob ich es im script mit " oder ohne eingebe.

habe es mir nocheinmal angeschaut in der cmd aber hilft mir nicht weiter. das löschen funkioniert ja, nur der 2te step mit dem neu erstellen nicht.

mfg
Member: Biber
Biber Mar 15, 2010 at 13:29:59 (UTC)
Goto Top
Moin cali169,

wer weiss, ob dein Skript-User die Rechte zum Verzeichnis-Neuanlegen hat...

Ist doch aber auch Banane.
Wir waren doch gemeinsam zu der Erkenntnis gekommen, dass sich die zu löschenden Dateien nicht auf der Hauptebene des Sicherungsverzeichnisses befinden, sondern in einer Ebene darunter.
Deshalb sind die dir beim ersten Versuch mit "DEL /Q Y:\Ebene_SicherungsRoot\*.*" durch die Lappalien gegangen (oder wie das heisst).

Aber nach wie vor geht es doch eigentlich um das Löschen dieser Dateien eine Ebene tiefer, nicht um das Wegschrubbeln und Neuanlegen des ganzen Unterverzeichnisses.

Also mach doch, wie ursprünglich schon immer gewollt, ein "DEL /Q Y:\Ebene_SicherungsRoot\RelevantesUnterverzeichnis*.*" und gut is'.

Grüße
Biber
Member: cali169
cali169 Mar 15, 2010 at 14:01:13 (UTC)
Goto Top
also wenn ich es so mache wie du schreibst, hatte ich schon probiert und jetzt nocheinmal dann werden die ordner unter catn0000 nicht gelöscht.

weder per script noch per direkteingabe in der cmd. hier wird " rd /s /Q "Y:\DB2_Sicherung_taeglich\test.0\DB2\NODE0000\CATN0000\" " zumindest gelöscht, auch wenn es ein ordner zuviel ist.
Member: cali169
cali169 Mar 17, 2010 at 09:58:19 (UTC)
Goto Top
vielen Dank für die Hilfe,

habe das Problem mit dem gelöschten Ordner anders gelöst, er wird jetzt von meiner DB2 Sicherung mit erstellt so funktioniert es prima