假設我的目錄結構是..獲取父目錄的名稱
C:\ Program Files文件\ ABC \ myscript.bat
從myscript.bat,所以我希望得到家長的名字這個腳本在本例中是abc。
請注意,我不想要完整的父路徑,我只需要像abc一樣的父母名稱。
實現此目的的簡單方法是什麼?
假設我的目錄結構是..獲取父目錄的名稱
C:\ Program Files文件\ ABC \ myscript.bat
從myscript.bat,所以我希望得到家長的名字這個腳本在本例中是abc。
請注意,我不想要完整的父路徑,我只需要像abc一樣的父母名稱。
實現此目的的簡單方法是什麼?
也許最簡單的代碼可能是
for %%a in ("%~p0.") do echo(%%~nxa
但是這個代碼有一個故障點,因爲你還沒有定義,當該批處理文件位於驅動器的根做什麼,那就是,當包含批處理文件的文件夾沒有名稱時該怎麼辦。
+1'for %% a in(「%〜p0。」)do echo「%%〜nxa」'。然後,'D:\ bat \ SO \ 32423120.bat'返回'「SO」'和'D:\ bat \ 32423120.bat'返回''bat「'和'D:\ 32423120.bat'返回'」「 '。完美的作品,沒有失敗的地步! – JosefZ
@JosefZ,是的,代碼在技術上是正確的,並且你指出它不會失敗,但是如果OP的代碼依賴於我的代碼,假設它將返回一個帶有文件夾名稱的字符串,但是返回的是一個空字符串,OP代碼可能會失敗。有必要明確定義代碼的行爲方式。沒有這個定義,我所能做的就是警告。 –
@JosefZ簡而言之,如果腳本位於'C:\'或'\\ myserver \ myshare',它將返回什麼? –
[使用DOS批處理腳本獲取特定文件的父目錄名稱](http://stackoverflow.com/questions/2396003/get-parent-directory-name-for-a-particular-file-using -dos-batch-scripting) – wOxxOm
所有你需要的是'echo%〜dp0' – npocmaka
'set「p =%〜P0」'和'for %% a in(「%p:〜,-1%」)do echo %%〜Na' – Aacini