2012-05-10 2 views
0

Я видел пару похожих вопросов, но мог вполне хватать вместе то, что хочу. Это было близко, потому что это дает мне имя последнего пакетного файла:Пакет: вызывать последний пакетный файл в каталоге

for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%x 
echo %recent% 

Но пакетный файл, который содержит это, скажем, C: \ начать, так что мне нужно, чтобы получить обратно полный путь к файлу, а не только имя файла. Затем я могу использовать «вызов» для запуска командного файла.

(я это делаю на хр, между прочим.)

+0

Вы должны знать путь от того, когда вы запускали 'dir' команду? ? – Vicky

ответ

1

если вы используете

for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%x 

вы положительно знаете, что полный путь к файлу будет c:\maps\%%x


Альтернативно, если вместо этого вы используете dir /s, он будет перебирать все существующие подкаталоги

for /f "delims=" %%x in ('dir /od /b /s c:\maps\*.bat') do set recent=%%x 

но с интересным побочным эффектом возврата полного пути, который будет %%x.

+0

Отлично! Я думаю, что буду использовать второй метод для моего скрипта. – eflat

0

пытаются использовать:

for /f "delims=" %%x in ('dir /od /b /s c:\maps\*.bat') do set recent=%%x 
echo %recent% 
0

Это работало для меня лучше, чем/с, которые имели низкую эффективность:

for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%~fx 
Смежные вопросы