AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[batch] ordnernamen

Ein Thema von _frank_ · begonnen am 7. Jun 2008 · letzter Beitrag vom 8. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#1

[batch] ordnernamen

  Alt 7. Jun 2008, 23:15
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [batch] ordnernamen

  Alt 7. Jun 2008, 23:52
Moin Frank,

der aktuelle Order wird schlicht durch . (ein Punkt) angegeben.
Oder brauchst Du explizit den Namen?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: [batch] ordnernamen

  Alt 8. Jun 2008, 00:01
Den Namen bekommst du so:
Code:
@echo off
for %%i in (%cd:\=,%) do set MyDir=%%i
echo %MyDir% 
pause
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#4

Re: [batch] ordnernamen

  Alt 8. Jun 2008, 00:04
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: [batch] ordnernamen

  Alt 8. Jun 2008, 00:19
Moin Robert,

auch schön.

Ich hätte noch folgendes anzubieten:

Code:
@ECHO OFF
for %%I IN (%~0) DO SET SELF=%%~dI%%~pI
SET SELF=%SELF:~,-1%
ECHO %SELF%
pause
Lässt man das zweite SET weg, bekommt man den Pfad mit \ am Ende, sonst ohne.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: [batch] ordnernamen

  Alt 8. Jun 2008, 00:25
Hallo Christian,

bei deiner Variante bekomme ich den ganzen Pfad zum Ordner. Das wollte der TE aber nicht, er wollte doch nur den Ordnernamen..
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#7

Re: [batch] ordnernamen

  Alt 8. Jun 2008, 00:32
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: [batch] ordnernamen

  Alt 8. Jun 2008, 00:52
Zitat von Fussball-Robby:
Hallo Christian,

bei deiner Variante bekomme ich den ganzen Pfad zum Ordner. Das wollte der TE aber nicht, er wollte doch nur den Ordnernamen..
Dann lässt man eben das %%~dI weg

Nachtrag:
Deine Fassung hat übrigens bei Ordnern mit Leerzeichen das gleiche Problem wie meine ... es wird nur der Anfang des Ordnernamens angezeigt
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: [batch] ordnernamen

  Alt 8. Jun 2008, 10:42
Zitat von _frank_:
was jetzt noch interesant wäre: ob es möglich ist, 2 ebenen weiter oben den Namen zu bekommen
Ja, das ist Möglich. Mittels pushd kannst du den Ordner wechseln, wobei .. der übergeordnete Ordner ist. Wenn du 2 Ordner nach oben wilst sähe der Code also so aus:
Code:
@echo off
pushd ..\..
for %%i in (%cd:\=,%) do set MyDir=%%i
echo %MyDir%
pause
Bei 3 Ordnern wäre es pushd ..\..\.. usw.
Zitat von _frank_:
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)
Ich habe es gestern auch noch ausprobiert, allerdings keine Lösung gefunden. Ich probier gleich nochmal ein wenig rum
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#10

Re: [batch] ordnernamen

  Alt 8. Jun 2008, 11:28
Zitat von Fussball-Robby:
Ja, das ist Möglich. Mittels pushd kannst du den Ordner wechseln, wobei .. der übergeordnete Ordner ist.
ich glaube es war gestern ein wenig zu spät hätte ja selber drauf kommen können, entsprechend das Workingdir zu wechseln per cd/pushd.

wär noch super, wenn es ne möglichkeit gäbe mit den leerzeichen...wie gesagt ich habs versucht mittels
Code:
for %%i in (%cd:\=,%) do set MyDir="%%i"
set MyDir=%MyDir:~1,-1%
echo %MyDir%
Gruß Frank
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz