kommandolinje - Sådan indstilles en variabel til stien til overordnet mappe på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Kæmper med kommandolinjen igen har jeg regnet ud, at jeg kan gemme den nuværende arbejdsmappe i en variabel som sådan:


SET current=\%cd\%


Hvordan ville jeg indstille forældre dog? SET parent=\%..\% virker ikke, da det ekkoer \%..\%


Grundlæggende kalder du et batch script C:amyscript.bat med følgende indhold:


@echo off
set current=\%cd\%
echo \%current\%


udskriver C:a, og jeg vil gerne indstille en variabel parent, så den ville udskrive C:a uden at ændre den aktuelle arbejdsmappe til ..


Er dette muligt?

Bedste reference


Flyt op en mappe, husk den aktuelle, indstil forældrene, og tryk derefter på en mappe, tilbage til hvor du startede


@echo off
set current=\%cd\%
pushd ..
set parent=\%cd\%
popd

echo current \%current\%
echo parent \%parent\%

Andre referencer 1


Du kan også gøre noget som dette:


set current=\%CD\%
set parent=\%CD\%..


Det giver dig ikke det forældres kanoniske navn, men det skal altid være en gyldig vej til overordnede mappe. Det vil også være noget hurtigere end løsningerne, der involverer pushd og popd, men det vil ikke være den primære overvejelse i en batchfil.


 Bemærk at alle de løsninger hidtil, herunder min her, vil have problemer, hvis den aktuelle mappe er roden til et drev. Der er ingen ren og nem vej ud af den ene, da der virkelig ikke er nogen forælder til et drev, der er synligt for brugerens tilstand.

Andre referencer 2


Brug


pushd targetFolder
set current=\%cd\%
popd


Pushd/popd opretholder en stak af tidligere besøgte mapper.