Windows 使用变量名更改到目录
我已经编写了一个脚本来搜索形状文件(.shp),一旦找到,我想切换到该目录:以下是我所拥有的Windows 使用变量名更改到目录,windows,batch-file,directory,Windows,Batch File,Directory,我已经编写了一个脚本来搜索形状文件(.shp),一旦找到,我想切换到该目录:以下是我所拥有的 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 ) 我遗漏了什么?只需在cd命令中向变量添加百分号:
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
)
我遗漏了什么?只需在
cd
命令中向变量添加百分号:
CD /d %shapefolder%
您的代码有两个问题。第一,正如Oliver已经指出的那样,
cd/d shapefolder
应该是cd/d%shapefolder%
,这样您就调用了实际变量
另一件事是SET shapefolder=%%~DPNX
应该改为SET shapefolder=%%~DPX
这是因为
N
引用了它找到的文件的文件名,所以如果您有一个square.shp,那么您的代码当前将查找C:\files\shapes\square
,而不是像它应该的那样查找C:\files\shapes\
。cd\d%shapefolder%??你确定你不是指cd'/d%shapefolder%