-3
該任務很簡單:給定路徑:C:\ Auto \ proj輸出:C:\ Auto。即提取給定路徑直到但不包括最後一次出現的「\」批量。提取路徑,直到批次中最後一次出現「」
該任務很簡單:給定路徑:C:\ Auto \ proj輸出:C:\ Auto。即提取給定路徑直到但不包括最後一次出現的「\」批量。提取路徑,直到批次中最後一次出現「」
試試這個:
set "givenpath=C:\Auto\proj"
for /f "tokens=1,2 delims=\" %%a in ("%givenpath%") do set "givenpath=%%a\%%b"
echo %givenpath%
試試這個:
@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%"
什麼:設置「parentPath = %%〜dpf」? – jerryh91
'%% f'(循環變量)包含'%givenPath%',即'C:\ Auto \ proj'。 '%%〜dpf'就是那個驅動器('d')和路徑'p'部分,即''C:\ Auto \''。下一行中的字符串替換將刪除尾部的反斜槓。 –
這是爲什麼在for循環?這可以在沒有循環的情況下完成嗎? – jerryh91