使用变量名称切换到目录

时间:2017-02-07 12:19:54

标签: 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
 )

我错过了什么?

2 个答案:

答案 0 :(得分:1)

您的代码有两个问题。第一个,正如Oliver已经指出的那样,cd /d shapefolder应该是cd /d %shapefolder%,这样你就可以调用实际的变量。

另一方面,SET shapefolder=%%~DPNX应该是SET shapefolder=%%~DPX

这是因为N是指它找到的文件的文件名,所以如果您有square.shp,那么您的代码目前会查找C:\files\shapes\square而不是C:\files\shapes\它应该是。

答案 1 :(得分:0)

只需在cd命令中将百分号添加到变量中:

CD /d %shapefolder%