Verdoppeln einer Batch-Datei

Hallo,
ich würde gerne eine Batch-Datei schreiben, die sich selber in den gleichen Ordner, in dem sie ist verdoppelt. Ich probiere gerade einen Befehl zu schreiben, dass bei der neuen Datei ein Buchstabe an den alten Dateinamen drangehängt wird.

Bis jetzt habe ich folgendes:
set var1=%0
set var2=%var1%x
xcopy "%var2%"
start "%userprofile%\Eigene Dateien\%var2%.bat\"


Und bekomme folgendes raus:

C:\Dokumente und Einstellungen\Felix\Desktop\noch-in-Arbeit>set var1="C:\Dokumen
te und Einstellungen\Felix\Desktop\noch-in-Arbeit\a.bat"

C:\Dokumente und Einstellungen\Felix\Desktop\noch-in-Arbeit>set var2="C:\Dokumen
te und Einstellungen\Felix\Desktop\noch-in-Arbeit\a.bat"x

C:\Dokumente und Einstellungen\Felix\Desktop\noch-in-Arbeit>xcopy ""C:\Dokumente
und Einstellungen\Felix\Desktop\noch-in-Arbeit\a.bat"x"
Unzulässige Parameteranzahl

C:\Dokumente und Einstellungen\Felix\Desktop\noch-in-Arbeit>start "C:\Dokumente
und Einstellungen\Felix\Eigene Dateien\"C:\Dokumente und Einstellungen\Felix\Des
ktop\noch-in-Arbeit\a.bat"x.bat\"
Die Datei "und" kann nicht gefunden werden.


Mein Problem ist also das "x" in den Dateinamen reinzubekommen.

Das ganze sieht jetzt bestimmt etwas dämlich aus, aber ich beschäftige mich mit diesem Thema erst seit ein paar Wochen.

LG Rechtschreibfehla
 
Zuletzt bearbeitet:
Hi.

Wie die Fehlermeldung schon sagt: du mußt xcopy 2 Parameter geben. Was soll xcopy denn auch mit nur einer Datei machen?

Gruß
 
Dann nehme ich wohl einfach copy statt xcopy. Wie gesagt, hab mich damit noch fast garnicht beschäftig.
Aber mein eigentliches Problem war ja, an den alten Dateinamen ein "x" dranzuhängen, sodass ich die Datei im gleichen Ordner erstellen kann.
 
Gut, ich glaub das hab ich jetzt so halbwegs verstanden.
Jetzt brauch ich aber noch eine Variable für den Dateinamen, aber ohne Pfad und ohne das ".bat". Gibt es sowas, oder gibts es noch eine andere Möglichkeit eine Kopie zu erstellen, an dessen Name ein Buchstabe angehängt wird?
 
Das was du gemeint hast ist glaube ich das hier:
Die Ersetzung von Batchparametern (%n) wurde erweitert. Sie können
jetzt folgende Syntax benutzen:

%~1 - Expandiert %1 und entfernt umschließende
Anführungszeichen (").
%~f1 - Expandiert %1 zu einem vollständigen Dateinamen.
%~d1 - Erzeugt nur den Laufwerkbuchstaben von %1.
%~p1 - Erzeugt nur den Pfad von %1.
%~n1 - Erzeugt nur den Dateinamen von %1.
%~x1 - Erzeugt nur die Dateierweiterung von %1.
%~s1 - Der erzeugte Pfad enthält nur kurze Namen.
%~a1 - Expandiert %1 zu Dateiattributen.
%~t1 - Expandiert %1 zu Datum/Zeit der Datei.
%~z1 - Expandiert %1 zur Größe der Datei.
%~$PATH:1 - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse und expandiert die erste
gefundene Datei %1 zu dem vollständigen Dateinamen.


Jetzt weiß ich aber immernoch nicht genau, welchen dieser Befehle ich bei var1 einsetzten muss:
set var1=
set var2=%var1%x
xcopy /e/v/y %0 "%userprofile%\Eigene Dateien\%var2%.bat"
start "%userprofile%\Eigene Dateien\%var2%.bat\"


lg
 
Hi.

Es wird nicht besser wenn du das Thema mehrfach reinstellst...

Und was ist denn da jetzt so schwer? Welchen Parameter mußt du denn nehmen und welche Elemente des Dateinamens brauchst du denn?

Code:
echo %~n0
Gruß
 
Zurück