2017-02-07 2 views
0

Я написал скрипт для поиска файла формы (.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 
) 

Что я отсутствует?

ответ

1

Две вещи неправильно с вашим кодом. Первый, как уже указывал Оливер, заключается в том, что cd /d shapefolder должен быть cd /d %shapefolder%, так что вы вызываете фактическую переменную.

Другое дело, что SET shapefolder=%%~DPNX должно быть SET shapefolder=%%~DPX.

Это происходит потому, что N относится к имени файла он находит, поэтому если у вас есть square.shp, ваш код в настоящее время будет искать C:\files\shapes\square вместо C:\files\shapes\ как это предполагается.

+0

cd \ d% shapefolder% ?? Вы уверены, что не имеете в виду cd '/ d% shapefolder% –

+0

Typo. Исправлено. – SomethingDark

0

Просто добавьте знак процента к переменной в команде cd:

CD /d %shapefolder% 
Смежные вопросы