hozwei
Goto Top

CMD erstellen, welche eine weitere CMD erstellt mit einer ProzentProzentVariable

Hallo liebe Gemeinde,

ich arbeite gerade an der Automatisierung unseren Arbeitsprozesse. Leider verzweifel ich an einem Skript.
Bei diesem Ablauf soll ein weiteres CMD Skript erstellt werden, welches sowohl Variablen des ersten Skriptes enthält und auch noch ein "%%" für den for /F Befehl benötigt.

set /p Laufwerk=
set /p Pfad=
set /p Workdir=

echo.for /F %%i in (PCs.txt) do copy /Y %Laufwerk%:\%Pfad%\Infos.txt \\%%i\C$\%Workdir%>copy.cmd

Leider enthält mein Ergebnis immer nur:
for /F %i in (PCs.txt) do copy /Y c:\test\Infos.txt \\%i\C$\Textdatein

Somit lässt es sich nicht ausführen...
Ich habe auch versucht in den Echo Befehl einfach ein weiteres % einzufügen, was allerdings ebenfalls nicht funktioniert.
Kann mir bitte jemand einen kleinen Tipp geben, wie und ob mein Gedanke umsetzbar ist?

Vielen Dank für eure Zeit.

LG Manuel

Content-Key: 221699

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

Printed on: April 20, 2024 at 00:04 o'clock

Member: bastla
bastla Nov 11, 2013 at 22:11:10 (UTC)
Goto Top
Hallo HOzwei!

Einfach die Prozentzeichen verdoppeln, also etwa:
echo for /F %%%%i in (PCs.txt) do copy "%%Laufwerk%%:\%%Pfad%%\Infos.txt" "\\%%%%i\C$\%%Workdir%%">copy2.cmd
Anmerkungen:
  • Der Punkt nach dem "echo" wäre nur sinnvoll, wenn der Teil danach wegfallen könnte (weil er zB nur eine Variable enthielte und diese leer wäre) - hier folgt aber auf jeden Fall Text.
  • Ein "copy" braucht in einem Batch kein "/Y" - es überschreibt ohnehin kommentarlos.
  • Pfade in Anführungszeichen einzuschließen sorgt für Leer- bzw Sonderzeichen vor.
  • Ein Batchfile mit dem Namen eines CMD-Befehls (hier also "copy") zu versehen ist keine gute Idee - damit handelst Du Dir ggf eine Endlosschleife ein ...

Grüße
bastla
Member: HOzwei
HOzwei Nov 11, 2013 at 22:21:12 (UTC)
Goto Top
Hallo bastla,

Wow! Vielen Dank für die schnelle Hilfe. Du hast mir den Abend gerettet.
Jetzt funktioniert alles wie es soll.

Wobei die Variablen %Laufwerk%, %Pfad% und %Workdir% auch wirklich durch die Eingaben ersetzt werden sollen, was ja auch funktioniert hat.
Ich bin allerdings nicht darauf gekommen die Prozent-Zeichen bei %%i zu verdoppeln...

Das mit copy /Y verwirrt mich etwas, da in der Hilfe von "copy" der Vermerk ist:
/Y Unterdrückt die Bestätigungsaufforderung beim Überschreiben vorhandener Zieldateien.
Ist diese Beschreibung mittlerweile überfällig?

LG Manuel
Member: bastla
bastla Nov 11, 2013 updated at 22:27:06 (UTC)
Goto Top
Hallo HOzwei!

In der Hilfe noch etwas weiterlesen:
Standardmäßig wird beim Überschreiben zum Bestätigen aufgefordert, außerwenn der COPY-Befehl innerhalb einer Batchdatei ausgeführt wird.

... gilt übrigens auch für "move" ...

Grüße
bastla