mario76
Goto Top

Datei im mehrere Order verschieben

Hallo zusammen,

ich bin auf der Suche nach einem Batchbefehl, der eine Datei in einen/mehrere Ordner kopieren soll wenn sie fehlt. Alternativ (wenn sie fehlt weglassen und) einfach überschreibt.

Name der Datei = MySql.Data.dll
Mögliche Ordnernamen = {AAFFFB64-6E42-4658-9383-E08EC53B3A48}; {AAFFFB64-6E42-4658-9383-E08EC53B3A48}3; {AAFFFB64-6E42-4658-9383-E08EC53B3A48}6 ... usw.
Der String zwischen den geschweiften Klammern ist immer gleich, jedoch kann es sein, dass eine Zahl (beliebig) hinten dran gehangen wird.

72ed514aa4f75d75184af5e8adc6500b

So funktioniert es für jeweils einen Ordner:
copy \\Server1\alle\TB\DateiFuerAddIn\MySql.Data.dll" "%temp%\..\SWX\EPDM\Plugins\vault\{AAFFFB64-6E42-4658-9383-E08EC53B3A48}\MySql.Data.dll"
pause


und...

copy \\Server1\alle\TB\DateiFuerAddIn\MySql.Data.dll" "%temp%\..\SWX\EPDM\Plugins\vault\{AAFFFB64-6E42-4658-9383-E08EC53B3A48}8\MySql.Data.dll"
pause


Auf die Zahlen am Ende habe ich leider keinen Einfluss da es scheint, dass diese willkürlich angelegt werden.


Ich habe schon ziemlich viel herumprobiert, komme aber leider nicht zur Lösung...

So wäre es für mich logisch gewesen:

copy "\\Server1\alle\TB\DateiFuerAddIn\MySql.Data.dll" "%temp%\..\SWX\EPDM\Plugins\vault\ | find "{AAFFFB64-6E42-4658-9383-E08EC53B3A48}" | MySql.Data.dll"
pause

... leider jedoch nicht für die Batch-Datei.

Ich hoffe mir kann hier jemand helfen?!

Vielen Dank schon mal im Voraus!

Gruß
Mario

Content-Key: 253887

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

Printed on: April 18, 2024 at 03:04 o'clock

Member: colinardo
colinardo Nov 05, 2014, updated at Nov 06, 2014 at 11:46:58 (UTC)
Goto Top
Hallo Mario,
z.B. so
@echo off & setlocal
set "ordner=%LOCALAPPDATA%\SWX\EPDM\Plugins\vault"  
for /f "delims=" %%a in ('dir /b /AD "%ordner%\{AAFFFB64-6E42-4658-9383-E08EC53B3A48}*" 2^>nul') DO copy "\\Server1\alle\TB\DateiFuerAddIn\MySql.Data.dll" "%ordner%\%%a"  
Grüße Uwe
Member: Mario76
Mario76 Nov 05, 2014 at 13:37:19 (UTC)
Goto Top
Hallo Uwe,

das Konsolenfenster poppt kurz auf aber leider geschieht nichts.

Gruß
Mario
Member: colinardo
colinardo Nov 05, 2014 updated at 13:45:25 (UTC)
Goto Top
Zitat von @Mario76:
das Konsolenfenster poppt kurz auf aber leider geschieht nichts.
na die Pfadangabe für den Ordner musst du ja vermutlich noch korrigieren face-wink
%temp%\..\SWX\EPDM\Plugins\vault
Member: Mario76
Mario76 Nov 05, 2014 at 13:50:47 (UTC)
Goto Top
... scheinbar bin ich zu blöd...
Wo soll ich den denn noch korrigieren?
Member: colinardo
colinardo Nov 05, 2014 at 13:58:18 (UTC)
Goto Top
Also hier läuft die Batch ...
Öffne mal manuell eine Konsole, entferne mal für den Test das @echo off & setlocal und führe die Batch dann aus, dann siehst du was bei dir nicht läuft ...
Member: Mario76
Mario76 Nov 05, 2014 at 15:33:35 (UTC)
Goto Top
Nee, nee, nee...

%temp%\..\SWX\EPDM\Plugins\vault

öffnet unter Windows genau diesen Pfad:

C:\Users\Mario\AppData\Local\SWX\EPDM\Plugins\vault\

So soll es ja auch sein. Da kann ich nichts mehr korrigieren. Tut mir ja leid, aber ich taste mich ja gerade erst an das Thema ran. Wenn Du einen konkreten Hinweis hast warum das nicht funktioniert dann wäre es schön diesen zu lesen.
Member: colinardo
colinardo Nov 05, 2014 updated at 18:16:48 (UTC)
Goto Top
C:\Users\Mario\AppData\Local\SWX\EPDM\Plugins\vault\
OK, da hatte ich was missinterpretiert, sorry.
Hab's mal hierdurch ersetzt: "%LOCALAPPDATA%\SWX\EPDM\Plugins\vault" das ist zuverlässiger, wenn auf einem System das Temporäre Verzeichnis auf einen anderen Ordner konfiguriert wurde.
Zitat von @Mario76:
Wenn Du einen konkreten Hinweis hast warum das nicht funktioniert dann wäre es schön diesen zu lesen.
habe ich dir im letzten Post geschrieben, lass es mal manuell in einer Konsole ausführen (ohne die erste Zeile @echo off) dann siehst du eventuelle Fehlermeldungen. Habe die Batch hier getestet und sie macht hier was du wolltest.

Grüße Uwe
Member: Mario76
Mario76 Nov 06, 2014 at 07:52:52 (UTC)
Goto Top
Guten Morgen Uwe,

habe den Befehl von Hand in die Konsole eingetippt und ausgeführt... (vielen dank für den Tip %LOCALAPPDATA%)

Resultat:
Er springt ohne Aktion in "C:\Users\Mario>"

Ich habe den Befehl geändert in:

copy "\\Server1\alle\TB\DateiFuerAddIn\MySql.Data.dll" "%LOCALAPPDATA%\SWX\EPDM\Plugins\vault\{AAFFFB64-6E42-4658-9383-E08EC53B3A48}6"\MySql.Data.dll"

Resultat.
Er kopiert die Datei in den Ordner "{AAFFFB64-6E42-4658-9383-E08EC53B3A48}6"

Ich geb auf...

Trotzdem vielen Dank für deine Geduld!

Gruß
Mario
Member: colinardo
Solution colinardo Nov 06, 2014, updated at Nov 10, 2014 at 12:13:52 (UTC)
Goto Top
Nein du darfst die einzelnen Zeilen so nicht manuell eintippen, für diesen Fall müsstest du die Laufvariable %%a an beiden Stellen durch %a ersetzen! Du musst die Batchdatei wie oben geschrieben ändern und dann diese manuell in der Konsole starten mit deinebatch.bat, damit du für den Fall der Fälle die Fehler sehen kannst ohne das sich deine Konsole direkt schließt.

Also speichere sie mal folgendermaßen ab, führe sie erneut aus, und poste hier die Ausgaben aus deiner Konsole, damit wir das zu einem Abschluss bringen können.
set "ordner=%LOCALAPPDATA%\SWX\EPDM\Plugins\vault"  
for /f "delims=" %%a in ('dir /b /AD "%ordner%\{AAFFFB64-6E42-4658-9383-E08EC53B3A48}*" 2^>nul') DO copy "\\Server1\alle\TB\DateiFuerAddIn\MySql.Data.dll" "%ordner%\%%a"  
pause
Vermutlich hast du nur einen Tippfehler oder es hat sich irgendwo beim Kopieren ein Fehler eingeschlichen.

Grüße Uwe
Member: Mario76
Mario76 Nov 10, 2014 at 12:13:42 (UTC)
Goto Top
Mensch Uwe,

Du bist genial und ich total hohl... face-smile Ich habe das Anführungszeichen bei:

set "ordner=%LOCALAPPDATA%\...

an die falsche Stelle gesetzt.

set ordner="%LOCALAPPDATA%\...

So wie Du es geschrieben hast funktioniert es hervorragend!!!

Vielen Dank nochmal für deine Geduld

Gruß
Mario
Member: colinardo
colinardo Nov 10, 2014 at 12:19:49 (UTC)
Goto Top
Zitat von @Mario76:
Du bist genial und ich total hohl... face-smile Ich habe das Anführungszeichen bei:
kann jedem mal passieren, kleine Ursache große Wirkung face-wink. Was meinst du wie oft mir das schon passiert ist. Ich habe mal einen halben Tag mit einer Problemsuche verbracht und am Ende war es so ein besch... Zeichen an der falschen Stelle face-smile

Grüße Uwe