我是 Windows 腳本新手,我有像 - 這樣的絕對路徑/bin/debug/test/abc.xyz.dll
,我想刪除檔案名稱並只取得像 output: 這樣的路徑/bin/debug/test/
。
我該怎麼做呢?
答案1
您可以為此使用循環的擴展功能FOR
- 即使它不會“循環”:
@echo off
setlocal EnableExtensions
set "arg=%~1"
for /f %%A in ('echo %arg%') do echo %%~pA
您可以在其中使用完整檔案名稱呼叫此腳本,可能會引用以保護其中的空格。
編輯:
我使用的原始程式碼echo %%~nxA
顯然是錯誤的,抱歉。它將檔案名稱與路徑隔離,並傳回檔案名稱。上面的程式碼現在只返迴路徑(不含磁碟機號)。
編輯2: 我很感謝@Karan 指出這可以縮寫為
@echo off
setlocal EnableExtensions
echo %~p1
因為擴展變數擴展語法不僅可以在FOR
循環中使用,而且可以在論證擴展以及(參見 CALL /?)。