我已经编写了一个脚本来搜索一个形状文件(.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
)
我错过了什么?
答案 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%