![]() |
[batch] ordnernamen
ich suche schon seit Ewigkeiten nach einer Möglichkeit den aktuellen Ordnernamen (nicht den ganzen Pfad) zu ermitteln...nach stundenlangem googlen habe ich bisschen mit %cd% rumexperimentiert, jedoch habe ich keine funktionierende Variante hinbekommen.
Hoffe irgendjemand hat da eine Idee :) Gruß Frank |
Re: [batch] ordnernamen
Moin Frank,
der aktuelle Order wird schlicht durch . (ein Punkt) angegeben. Oder brauchst Du explizit den Namen? |
Re: [batch] ordnernamen
Den Namen bekommst du so:
Code:
@echo off
for %%i in (%cd:\=,%) do set MyDir=%%i echo %MyDir% pause |
Re: [batch] ordnernamen
ich brauch den namen...
ums mal zu erklären, ich will ein script schreiben, welches mir bestimmte dateien in einem Verzeichnis (mittels 7zip) packt, wo das archiv den Namen des ordners hat. wie die funktion "hinzufügen zu <ordner>.zip" nur halt automatisiert, da ich noch Dateien ausklammern will (funktioniert schon). Danke Robby, das war genau das, was ich gesucht habe :) Gruß Frank |
Re: [batch] ordnernamen
Moin Robert,
auch schön. Ich hätte noch folgendes anzubieten:
Code:
Lässt man das zweite SET weg, bekommt man den Pfad mit \ am Ende, sonst ohne.
@ECHO OFF
for %%I IN (%~0) DO SET SELF=%%~dI%%~pI SET SELF=%SELF:~,-1% ECHO %SELF% pause |
Re: [batch] ordnernamen
Hallo Christian,
bei deiner Variante bekomme ich den ganzen Pfad zum Ordner. Das wollte der TE aber nicht, er wollte doch nur den Ordnernamen.. |
Re: [batch] ordnernamen
was jetzt noch interesant wäre: ob es möglich ist, 2 ebenen weiter oben den Namen zu bekommen :)
Grund dafür ist, dass ich manchmal SVN-Strukturen habe und somit der "programmname" nicht im letzten ordner steckt (dieser heist da trunk).sowas wie arrays sind mir in bath nicht bekannt... //edit lässt sich das mit dem leerzeichen irgendwie umgehen? hab versucht das in der for-schleife mittels " zu kapseln, hat aber nicht geklappt (trotzdem nur letzter teil) Gruß Frank |
Re: [batch] ordnernamen
Zitat:
Nachtrag: Deine Fassung hat übrigens bei Ordnern mit Leerzeichen das gleiche Problem wie meine ... es wird nur der Anfang des Ordnernamens angezeigt ;-) |
Re: [batch] ordnernamen
Zitat:
Code:
Bei 3 Ordnern wäre es pushd ..\..\.. usw.
@echo off
pushd ..\.. for %%i in (%cd:\=,%) do set MyDir=%%i echo %MyDir% pause Zitat:
|
Re: [batch] ordnernamen
Zitat:
wär noch super, wenn es ne möglichkeit gäbe mit den leerzeichen...wie gesagt ich habs versucht mittels
Code:
Gruß Frank
for %%i in (%cd:\=,%) do set MyDir="%%i"
set MyDir=%MyDir:~1,-1% echo %MyDir% |
Re: [batch] ordnernamen
Ich hab ne Lösung gefunden, ob sie elegant ist sei mal dahingestellt. Bei der Ausgabe sind dann aber noch Anführungszeichen drumrum.
Code:
Erstmal habe ich alle Leerzeichen durch # ersetzt. Dann hole ich mir den Ordnernamen und ersetze die # wieder durch Leerzeichen.
@echo off
pushd ..\.. for %%i in (%cd: =#%) do set MyDir=%%i for %%i in ("%MyDir:\=,%") do set MyDir=%%i for %%i in ("%MyDir:#= %") do set MyDir=%%i echo %MyDir% pause Ist wohl ziemlich unsauber, aber so gut kenn ich mich mit Batch-Programmierung auch nichts aus und vielleicht hilft es dir ja. |
Re: [batch] ordnernamen
danke, du hast mich da auf eine idee gebracht, auch wenn man keine schleife dafür braucht ;)
hab auch festgestellt, dass ich auch nur 1 ebene hoch muss ;) hier meine komplette batch, vielleicht nützt sie jemanden noch:
Code:
Gruß Frank
@echo off
cd %~dp0 rem removing backups del /S *.~* del /S *.dcu del /S *.map del /S *.drc del /S _bak_\*.* rmdir _bak_ goto getfoldername :DirsUp pushD .. :getfoldername rem getting name of current folder rem replace spaces set dir=%cd: =#% rem parsing last foldername for %%i in (%dir:\=,%) do set folder="%%i" rem replace back to spaces set folder=%folder:#= % rem remove quotes set folder=%folder:~1,-1% rem echo %folder% rem pause if "%folder%"=="trunk" goto DirsUp set zipname="%folder%.zip" set _7za="D:\system\7-zip\7za.exe" set exclude=-x!*.svn* popd %_7za% u -r -tzip %exclude% %zipname% .\ pause |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz