Pfad einer Datei Kopieren (Batch)?
Hallo, ich bin neu im Bereich Batch und hätte eine Frage.. Also ich programmiere im moment an einer Datei die eine Datei auf dem Pc sucht und dann denn Pfad kopiert, dann zum Pfad navigiert und alle dateien im entsprechenden Ordner löscht. Soweit so gut..
Das Skript sieht im moment noch so aus:
Aber als Variable kommt zum beispiel
Also wie bekomme ich das Program.bat weg so das da nur C:\Beipiel\ als Variable raus kommt
Mfg
Das Skript sieht im moment noch so aus:
chcp 65001 >nul
set "fileToSearch=Program.exe"
set "desinationPath=j:\copied"
md "%desinationPath%" 2>nul
for /f "usebackq skip=1 tokens=1 delims=:" %%a in (`wmic logicaldisk where "DriveType=3" get name ^| findstr /r /v "^$" `) do (
echo Überprüfung %%a: ...
for /f "tokens=*" %%f in ('dir /s /b /a:-d "%%a:\%fileToSearch%"') do (
echo Datei gefunden: %%f
set "%%f=path"
md "%desinationPath%\%%~a%%~pf"
echo Zieldatei: "%desinationPath%\%%~a%%~pnxf"
copy "%%~f" "%desinationPath%\%%~a%%~pf*.*"
)
)
pause
if NOT [%CD%] == [%path%] cls && call :xcolor 04 "Ein unbekannter Fehler ist aufgetreten!" 1 && call :xcolor "Starte das Program neu!" && echo. && pause >nul && exit
cd %path%
del *
Aber als Variable kommt zum beispiel
path = C:\Beispiel\Program.bat
Also wie bekomme ich das Program.bat weg so das da nur C:\Beipiel\ als Variable raus kommt
Mfg
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 652530
Url: https://administrator.de/forum/pfad-einer-datei-kopieren-batch-652530.html
Ausgedruckt am: 13.04.2025 um 16:04 Uhr
4 Kommentare
Neuester Kommentar
Moin,
also davon abgesehen, dass du doch eigentlich alles vorliegen hast, gestatte mir doch bitte die Frage, wieso du jetzt noch anfängst dich mit Batch zu beschäftigen. Wir leben im Jahr 2021 und wenn man jetzt neu anfängt, würde ich stets PowerShell empfehlen. Die Möglichkeiten in Powershell sind einfach vielseitiger. Nur als Vergleich:
Eine Datei zu suchen und den Ordner in dem Sich die Datei befindet zu löschen, ist in Powershell nicht länger als 3 bis 5 Zeilen. Je nachdem wie Flexibel du das Skript halten möchtest und ob es protokolliert werden soll. Das suchen und löschen ist eine Zeile.
Gruß
Doskias
Tipp um dein Problem zu lösen. du hast in Zeile 3 doch den Namen der Datei schon angegeben. Den must du jetzt nur noch aus deinem Path rausnehmen und fertig.
also davon abgesehen, dass du doch eigentlich alles vorliegen hast, gestatte mir doch bitte die Frage, wieso du jetzt noch anfängst dich mit Batch zu beschäftigen. Wir leben im Jahr 2021 und wenn man jetzt neu anfängt, würde ich stets PowerShell empfehlen. Die Möglichkeiten in Powershell sind einfach vielseitiger. Nur als Vergleich:
Eine Datei zu suchen und den Ordner in dem Sich die Datei befindet zu löschen, ist in Powershell nicht länger als 3 bis 5 Zeilen. Je nachdem wie Flexibel du das Skript halten möchtest und ob es protokolliert werden soll. Das suchen und löschen ist eine Zeile.
Gruß
Doskias
Tipp um dein Problem zu lösen. du hast in Zeile 3 doch den Namen der Datei schon angegeben. Den must du jetzt nur noch aus deinem Path rausnehmen und fertig.
Zitat von @batchcrack:
Also das Skript hab ich von nehm Freund der sich damit sehr gut auskennt und ich wollte damit halt auch mal anfangen und hab da auch schon so nh bisschen was gelernt und wollte halt mal fragen wie das geht..
Also ein Neuling im Bereich Batch mit dem Namen Batchcrack.Also das Skript hab ich von nehm Freund der sich damit sehr gut auskennt und ich wollte damit halt auch mal anfangen und hab da auch schon so nh bisschen was gelernt und wollte halt mal fragen wie das geht..
Ist klar das das jetzt nicht so viel bringt das jetzt zu lernen aber ist mir egal will einfach bisschen dazu lernen :3
Was neues zu lernen ist nie falsche, aber aber wieso nicht gleich was neues. Bei Powershell lernst du viel mehr. Und wen du was neues lernen willst, dann schreib das Skript selbst und lass es dir nicht vom Freund geben. Und wenn du mit dem Skript deines Freundes nicht klar kommst, dann frag deinen Freund.Sorry, das soll nicht unhöflich klingen, aber ich bin es leid, dass Leute hier ihr Skript reinposten, was sie von irgendwem haben, es nicht verstehen, nicht ändern können und eine fertige Lösung suchen. Du wirst dafür bezahlt deinen Job zu machen, wir nicht um dir zu helfen.
Gruß
Doskias
PATH ist eine vordefinierte Variable die du besser nicht überschreibst, sonst werden Systemtools nicht mehr gefunden. Nutze einen anderen Variablenname.
Ansonsten: Schau dir mal die Hilfe zu FOR an (
Steffen
Ansonsten: Schau dir mal die Hilfe zu FOR an (
FOR /?
ausführen), dort siehst du dass es möglich ist die Expansion von FOR Variablen zu verändern. Für deinen Fall wäre das ~DP
für drive und path.set "filepath=%%~DPf"