2013-07-23 55 views

回答

1

試試這個:

set "givenpath=C:\Auto\proj" 
for /f "tokens=1,2 delims=\" %%a in ("%givenpath%") do set "givenpath=%%a\%%b" 
echo %givenpath% 
0

試試這個:

@echo off 

setlocal EnableDelayedExpansion 

set "givenPath=C:\Auto\proj" 

for %%f in (%givenPath%) do (
    set "parentPath=%%~dpf" 
    set "parentPath=!parentPath:~0,-1!" 
) 

echo %parentPath% 

另一種選擇:

@echo off 

setlocal 

set "givenPath=C:\Auto\proj" 
call :Dirname "%givenPath%" 
goto :eof 

:Dirname 
set "parentPath=%~dp1" 
set "parentPath=!parentPath:~0,-1!" 
echo %parentPath%" 

或者你也可以通過將路徑作爲命令行參數:

@echo off 

setlocal 

set "parentPath=%~dp1" 
set "parentPath=!parentPath:~0,-1!" 
echo %parentPath%" 
+0

什麼:設置「parentPath = %%〜dpf」? – jerryh91

+0

'%% f'(循環變量)包含'%givenPath%',即'C:\ Auto \ proj'。 '%%〜dpf'就是那個驅動器('d')和路徑'p'部分,即''C:\ Auto \''。下一行中的字符串替換將刪除尾部的反斜槓。 –

+0

這是爲什麼在for循環?這可以在沒有循環的情況下完成嗎? – jerryh91

相關問題