poljew
Goto Top

Mit einer Batchdatei Platzhalter im Pfad setzen

Hallo Leute,
ich bin neu hier, also entschuldigt bitte, wenn ich die Frage an der falschen Stelle stelle.

Ich versuche gerade eine Batch Datei zu erstellen, die aus einem Ordner in einen anderen eine Datei kopiert:

echo %jahr%-%monat%-%tag%

copy \\srv55\%jahr%-%monat%-%tag%\Test1--123654\Result.txt C:\Temp\Result.xml

Wenn ich es so schreibe wie oben, geht alles, allerdings wird der Ordner Test1 immer neu erstell, das heisst, ich weiss das der Ordner Test1,2 oder3 heisst, der Rest ist variabel.
Z.B. Es gibt dann mehrere Ordner die so heißen können:
Test1--123654
Test2--567890
Test3--187689 u.s.w und in jedem Ordner liegt eine Result.xml.

Ich habe folgendes probiert:

copy \\srv55\%jahr%-%monat%-%tag%\Test1*\Result.txt C:\Temp\Result.xml
geht aber nicht, ich kriege Fehlermeldung, dass der Synthax nicht stimmt.

Wie kann ich das Problem umgehen?

Vielen Dank

Content-Key: 171554

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

Printed on: April 25, 2024 at 07:04 o'clock

Member: Skyemugen
Skyemugen Aug 16, 2011 at 09:08:29 (UTC)
Goto Top
Aloha und willkommen im Forum,

du bist schon im richtigen Bereich face-wink

Ich denke, wenn die Anzahl der Stellen immer gleichbleibend ist und es nur einen Test1-Ordner gibt, müsste es sich bereits per
copy \\srv55\%jahr%-%monat%-%tag%\Test1--??????\Result.txt C:\Temp\Result.xml
lösen lassen.

Was mir nur auf den Magen schlägt:
Du hast mehrere Verzeichnisse und kopierst dann einzeln jeweils die Datei?

Wenn man jetzt wüsste, ob dann nicht doch eher eine for-Verarbeitung für alle Verzeichnisse sinnvoller wäre ...

greetz André

edit: Hm, eventuell doch nicht erfolgreich, zwar lässt sich so in ein Verzeichnis schlüpfen bzw. es herausfinden aber wenn eine Datei genutzt wird, läuft das ins Leere face-sad
Man könnte also so z.B. per cd /d arbeiten oder pushd aber ich warte mal ab, wie deine Aussage zu einer gesamten Abhandlung lautet.
Member: poljew
poljew Aug 16, 2011 at 09:37:47 (UTC)
Goto Top
Hallo Andre,
danke für die schnelle Antwort, das hat leider nicht funktioniert, ich kriege immer noch diese Fehlermeldung:
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

Hast du vielleicht noch einen Tip für mich?

P.S. Das mit for Schleife, werde ich auch machen müssen, ich wollte erstmal probieren, ob es überhaupt funktioniert.

Viele Grüße
Paul
Member: Friemler
Friemler Aug 16, 2011 at 09:42:09 (UTC)
Goto Top
Hallo poljew,

versuche es mal so:
for /d %%d in ("\\srv55\%jahr%-%monat%-%tag%\Test1--*") do (  
  copy "%%d\Result.txt" "C:\Temp\%%~nxd-Result.xml"  
)

Um das Problem zu umgehen, dass alle Quelldateien den gleichen Namen haben und sich somit im Zielverzeichnis gegenseitig überschreiben würden, werden sie im Zielverzeichnis als <Quellverzeichnis>-Result.xml gespeichert.

@Skyemugen
Die von Dir vorgeschlagene Lösung mit den ?-Wildcards funktioniert nicht. Wie sollte sie auch, wenn der TO mit * schon keinen Erfolg hatte?

Gruß
Friemler
Member: Skyemugen
Skyemugen Aug 16, 2011 at 09:42:16 (UTC)
Goto Top
Aloha,

ja, das habe ich bereits selbst im edit stehen ...

wäre schön, wenn du auch den Rest des Kommentars lesen würdest ... und darauf eine Aussage gibst ...

greetz André

@Friemler wozu schreib' ich hier eigentlich edits - liest sowieso niemand und ich wollte erst einmal nicht für einen Pfad for-Schleifen bauen, wenn man die nicht evtl. sinnvollerweise für ein Gesamtpaket verwenden könnte aber der TE äußert sich ja nicht dazu und so beließ ich es erst einmal bei meinem Geschriebenen ....
ich hab' heute keine gute Laune, kommt mir nicht mit wie sollte sie auch ...

edit: Ah, er hat ein P.S.: hineineditiert ... dachte, post scriptum kommt post scriptum und nicht hinein *stänker*

P.S:: @Friemler, hättest doch dann gleich nach Test?--* suchen lassen können, wenn ich das EP richtig interpretiere, dann hätte er den Spaß gleich für alle Test-Verzeichnisse
Member: Friemler
Friemler Aug 16, 2011 at 09:53:53 (UTC)
Goto Top
Hallo André,

Zitat von @Skyemugen:
ich hab' heute keine gute Laune

ist bemerkbar face-wink . Another day, another game.

Gruß
Friemler
Member: poljew
poljew Aug 16, 2011 at 09:54:00 (UTC)
Goto Top
Das hat funktioniert,
super vielen Dank an alle!

Gruß
Paul
Member: bastla
bastla Aug 16, 2011 at 10:29:26 (UTC)
Goto Top
Hallo Friemler!

Ich nehme an, Skyemugen meinte
for /d %%d in ("\\srv55\%jahr%-%monat%-%tag%\Test?--*") do (
- was natürlich funktionieren würde (wobei wir weiterhin nicht wirklich wissen, was der TE eigentlich vor hat(te) face-wink) ...

Grüße
bastla