WinFuture-Forum.de: Pfad abkürzen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Pfad abkürzen


#1 Mitglied ist offline   asterix22 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 21. Mai 17
  • Reputation: 0

geschrieben 21. Mai 2017 - 18:35

Hallo zusammen
Ich habe einen Pfad, den ich in einer Batch-Datei auf eine gewisse Anzahl Zeichen beschränken möchte:
set "Path=C:\xampp\htdocs\test-5"

Ich möchte das -5 abschneiden (damit ich dort immer neue Versionen reinsetzen kann, ohne am Skript etwas zu ändern)
Das Problem ist, dass ich den Pfad also so angeben möchte:
set "Path=C:\xampp\htdocs\test" also das was hinter test kommt möchte ich für den Pfad ignorieren.

Kann mir jemand helfen?

Vielen Dank im Voraus!

Dieser Beitrag wurde von asterix22 bearbeitet: 21. Mai 2017 - 18:45

0

Anzeige



#2 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 21. Mai 2017 - 18:54

Willkommen im Forum!

echo %Path:~0,-2% ergibt das gewünschte Ergebnis
0

#3 Mitglied ist offline   asterix22 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 21. Mai 17
  • Reputation: 0

geschrieben 21. Mai 2017 - 19:42

Vielen Dank für die rasche Antwort!

Das Problem ist aber, dass ich das -5 nicht dorthin schreiben kann, weil sich das ja immer ändert. Einmal stelle ich den test-5 hinein, dann später test-6, oder test-7
Wie kann ich den path als Variable übernehmen, ohne die letzten Zeichen (die ich nicht reinschreiben kann)

Gibt es dazu eine Lösung?
0

#4 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 21. Mai 2017 - 21:13

Wo willst du denn den "test" hineinstellen? Wozu soll die Variable dienen? Ich seh den Grund in Zusammenhang mit xampp nicht. Eigentlich braucht man da sowas nicht.
AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#5 Mitglied ist offline   asterix22 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 21. Mai 17
  • Reputation: 0

geschrieben 21. Mai 2017 - 22:06

Ich möchte einen Ordner reinsetzen, von dem es verschiedene Versionen gibt. Damit ich den Versionsnamen weiss, möchte ich den hinten anhängen, aber im Variablenpfad nicht mitgeben. Obwohl der Ordner der dort steht test_5 heisst, soll der Pfad nur bis zu /test gehen. (weil der Ordner ev. test_8 heisst, damit ich sehe, dass ist die Version 8)
0

#6 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 21. Mai 2017 - 22:22

Gut und schön, aber entweder sind da keine ausführbaren Befehle drin, sodaß das nicht in den $PATH muß, oder aber es sind doch welche drin, in welchem Fall da was nicht hinhaut, weil eine Plattform für alles mehr als ausreichend ist.

Wenn Du das doch willst oder brauchst, könntest Du eine zusätzliche Variable anlegen für den "Basispfad" und dann sowas wie

SET base=C:\Path\to\base
for /F %%n in ('dir /b /o-n %base%*) do @set PATH=%PATH%;%%n

basteln.

Du wärst aber vermutlich besser beraten, wenn Du einfach sowas wie

set PATH=C:\Path\to\XAMPP_ROOT-%index% sagst und dann entweder am Anfang der Batchdatei set index=5 oder sowas hinzufügst oder aber das per Parameter übergibst, falls notwendig.

Aber wie gesagt, gibt es keinen besonderen Sinn, irgendwelche Pfade in den Systemsuchpfad aufzunehmen. Besonders keine HTDOCs, wo ausführbare Dateien nichts, aber auch gar nichts zu suchen haben.

Obligatorische Ergänzung: XAMPP bitte nur und NUR zu Testzwecken verwenden, das Zeuch hat auf einer produktiven Maschine NICHTS zu suchen.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#7 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 22. Mai 2017 - 05:19

Beitrag anzeigenZitat (asterix22: 21. Mai 2017 - 22:06)

Ich möchte einen Ordner reinsetzen, von dem es verschiedene Versionen gibt.

Wo rein soll der Ordner gesetzt werden? In die Variable?

Wenn der Ordner test_5 heisst, der Pfad aber nur bis /test geht, dann setzt du einen Pfad der nicht existiert.

Deshalb nochmal die Frage wozu der Pfad nützen soll. Was willst du mit dem Pfad machen?

Dieser Beitrag wurde von Gispelmob bearbeitet: 22. Mai 2017 - 05:19

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#8 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 22. Mai 2017 - 06:27

Ich meine es verstanden zu haben. Er möchte die Batch starten, dann kommt eine Eingabeaufforderung, er gibt eine "5" ein und sein "was auch immer" wird in Ordner "test_5 gespeichert. Beim nächsten Mal gibt er dann eine 6 ein. Aktuell öffnet er vorher die Batch im Editor, ändert den Zielordner in der Datei und startet die Batch dann. Jedes mal vorher die Batch im Texteditor anzupassen soll vermieden werden.

Dieser Beitrag wurde von Holger_N bearbeitet: 22. Mai 2017 - 06:28

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#9 Mitglied ist offline   asterix22 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 21. Mai 17
  • Reputation: 0

geschrieben 22. Mai 2017 - 09:10

Danke für euer Mitdenken

Es handelt sich um einen Ordner, der kopiert werden soll, je nachdem wie die aktuelle Anzeige sein soll, werden die einen oder die anderen Files aus diesem Ordner kopiert.
Nun muss ich die Files in diesem Ordner aber verbessern, resp. an neue Kunden anpassen.
Darum möchte ich wissen welche Version dieses Ordner aktuell bereit liegt. Diese Versionsnummer möchte ich aber natürlich im Pfad abgeschnitten haben, da ich ja immer nur auf /test zugreifen will.

Gibt es dazu keine Lösung?
0

#10 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 22. Mai 2017 - 09:17

Dann habe ich es doch nicht verstanden.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#11 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 22. Mai 2017 - 18:14

Geht es um die virtuellen Verzeichnisse? :unsure:

DIE kann man in den apache-Konfigdateien definieren, per DIRECTORY-Direktive. Einfach zuweisen, von wegen <Directory "/test" "C:\Pfad"> ... </Directory> .

Da die Dinger virtuell sind, kann man zuweisen, was man will. Nach Ändern aber die Konfiguration einlesen, also einfacherweise den apache neu starten.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#12 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.591
  • Beigetreten: 14. August 15
  • Reputation: 392

geschrieben 23. Mai 2017 - 06:42

Beitrag anzeigenZitat (asterix22: 22. Mai 2017 - 09:10)

Darum möchte ich wissen welche Version dieses Ordner aktuell bereit liegt. Diese Versionsnummer möchte ich aber natürlich im Pfad abgeschnitten haben, da ich ja immer nur auf /test zugreifen will.

Also, wenn der Pfad z.B. C:\Projekte\test-5 ist und du auf C:\Projekte\test zugreifen willst, dann gibt es diesen Pfad nicht, denn der vorhandene Pfad ist C:\Projekte\test-5

Erklär doch mal von wo, woher oder wodurch du auf den Pfad \test zugreifen willst. Eventuell hast du ja einen Fehler in der Vorgehensweise. Hier gibt es durchaus erfahrene Programmierer die dir da helfen können.

Dieser Beitrag wurde von Gispelmob bearbeitet: 23. Mai 2017 - 06:42

AMD Ryzen 9 5950X, Asus ROG Strix X570-F Gaming, 32GB Corsair DDR4-3200, Asus Geforce GTX 3060 12GB, Creative Sound Blaster AE-7, 240GB SSD, 500GB SSD, 3x 1TB SSD, Win11 Home, 4x Acer G246HL Bbid, Logitech MX518 Gaming Mouse, Logitech G440 Mousepad, Logitech K120 Keyboard, Razer Tiamat 7.1 V2 Headset, Creative Inspire 5.1 5300 Soundsystem
0

#13 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 23. Mai 2017 - 08:56

Wenn es so ist, wäre vielleicht eine Möglichkeit, nicht die 5 vom Ordner »test-5« abzuschneiden, sondern den ganzen Ordner wegzulassen, also dass der Pfad nur bis zum Ordner über test-5 geht, um dann alle Ordner anzeigen zu lassen, die in diesem drin ist.

Also /OrdnerA/OrdnerB/OrdnerC/test-5/

und dann taucht test-5 gar nicht im Script auf, sondern »alle Ordner, die in OrdnerC liegen« werden aufgelistet. Es würde dann Sinn machen, einen OrdnerC nur für diese relevanten Testordner anzulegen.




Was mich auf noch etwas bringt. Liegen in dem OrdnerC noch mehr Ordner aber nur die mit »test« beginnen sollen angezeigt werden, dann käme das noch weiter in die Nähe des möglichen Problems. Dann ist nur der Denkansatz falsch.

dann darf man bei der Suche nach den test-Ordnern im Falle

/OrdnerA/OrdnerB/OrdnerC/test-5/ nicht nach

/OrdnerA/OrdnerB/OrdnerC/test[abgeschnitten] suchen sondern wie oben schon gesagt nach »alle Ordner in«

/OrdnerA/OrdnerB/OrdnerC/

und beschränkt dann das Ergebnis auf alle Ordner die mit »test« beginnen. Denn wie Gispelmob schreibt, ist

/OrdnerA/OrdnerB/OrdnerC/test[abgeschnitten]

dann ein Pfad zu einem Ordner, den es nicht gibt.

Dieser Beitrag wurde von Holger_N bearbeitet: 23. Mai 2017 - 09:04

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#14 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 23. Mai 2017 - 09:22

Naja, die banalste Option wäre per Symlink.

Einfach versionierte Ordner haben test-1 bis test-n und dann per
mklink /D test test-<n> 
verknüppeln.
"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0