2010-06-03 3 views
0

После How to get folder path from file path with CMDКак получить путь от переменной

Я хочу раздеть путь (без имени файла) из переменной. следуя логике описанных выше методов, я хотел бы использовать пакетный рев, который не работает. любые участники? возможное?

set cpp="C:\temp\lib.dll" 
echo %cpp% 
"C:\temp\lib.dll" 
echo %~dpcpp 
"C:\temp\" > doesn't work 

ответ

0

Испытано: demo.bat

@echo off 
echo "Setting cpp" 
set cpp="C:\temp\lib.dll" 

echo "Calling JustGetPath" 
call :JustGetPath %cpp% 

echo "Returning result" 
echo %_RESULT% 

echo "Quitting" 
goto :eof 

:JustGetPath 
echo " +JustGetPath(%1)" 
set _RESULT=%~dp1 

echo " -JustGetPath()" 
GOTO :eof 

:eof 

Выходы следующие при запуске:

"Setting cpp" 
"Calling JustGetPath" 
" +JustGetPath(C:\temp\lib.dll)" 
" -JustGetPath()" 
"Returning result" 
C:\temp\ 
"Quitting" 

Смотри также: http://ss64.com/nt/call.html

1

Вы можете использовать for команду, например, так:

set cpp="C:\temp\lib.dll" 

:: Print the full path and file name: 
echo %cpp% 

:: Print just the path: 
for %%P in (%cpp%) do echo %%~dpP 
+0

Я пробовал это без успеха - по-видимому, это было на WINE на Linux, поэтому, возможно, интерпретатор не был полностью совместим с Microsoft Windows ... –

+0

@PP: Хмммм, это работает на моих XP, Windows 7, Server 2003 и Server 2008. –

+0

работает на win7, мне это нравится, но изучение CALL-пути было для меня открытием разума, поэтому я даю ему V – yoshco

Смежные вопросы