windows - Skift til bibliotek ved hjælp af variabelt navn

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har skrevet et script for at søge efter en form fil (.shp), jeg vil ændre til den mappe, der er fundet: Her er hvad jeg har


 FOR /F \%\%X IN ('DIR /S /B *.shp') DO SET shapefolder=\%\%~DPNX
 IF DEFINED shapefolder (
 ECHO \%shapefolder\%
 CD /d shapefolder REM doesn't work
 ) ELSE (
 ECHO File not found
 )


Hvad mangler jeg?

Bedste reference


To ting er forkerte med din kode. Den første, som Oliver allerede påpegede, er, at cd /d shapefolder skal være cd /d \%shapefolder\%, så du 'ringer den faktiske variabel.


Den anden ting er, at SET shapefolder=\%\%~DPNX skal være SET shapefolder=\%\%~DPX i stedet.


Dette skyldes, at N refererer til filnavnet på den fil, den finder, så hvis du har en square.shp, vil din kode i øjeblikket søge efter C:filesshapessquare i stedet for C:filesshapes som den s skulle.

Andre referencer 1


Tilføj blot procenttegnet til din variabel i kommandoen cd:


CD /d \%shapefolder\%