我正在使用批處理腳本將文件自動備份到我的NAS,並且我需要從絕對路徑中獲取最後一個文件夾名稱,例如從「C:\ Things \ Folder 「到‘文件夾’批處理:從絕對路徑獲取最後一個文件夾名稱
2
A
回答
5
這是一個黑客位,但你可以使用:
Set NasPath=C:\Things\Folder
Set NasFolder=%NasPath%
:GetFolder
Set GetFolderTemp=%NasFolder:*\=%
If Not %GetFolderTemp%==%NasFolder% (
Set NasFolder=%GetFolderTemp%
Goto :GetFolder
)
Echo NasPath =%NasPath%
Echo NasFolder=%NasFolder%
Exit /B
不管你做什麼,不要把周圍的Set NasPath=...
聲明的任何部分的報價。使用引號是這樣的:
Set FromPath=C:\Program Files\Blah
Set NasPath=C:\Things\Folder
RoboCopy "%FromPath%" "%NasPath%"
不要使用引號是這樣的:
Set FromPath="C:\Program Files\Blah"
Set NasPath="C:\Things\Folder"
RoboCopy %FromPath% %NasPath%
0
假設C:\Program Files\Mickey\Mouse
樣的路徑(不帶引號),你也可以使用下面的代碼:
setlocal EnableDelayedExpansion
set path=C:\Program Files\Microsoft\Mickey\Mouse
:shift
for /f "tokens=1* delims=\/" %%i in ("!path!") do (
set folder=%%i
set path=%%j
)
if not [!path!] == [] goto :shift
echo folder: !folder!
endlocal
+0
請注意,這將覆蓋'PATH'環境變量。 –
1
爲了不與空間有任何問題,我建議這個代碼:
Set NasPath=C:\Things\My Space\Folder
Set GetFolderTemp=%NasPath%
:GetFolder
FOR /F "tokens=1,* delims=\" %%1 IN ("%GetFolderTemp%") do (
set NasFolder=%%1
set GetFolderTemp=%%2
)
if not "a%GetFolderTemp%"=="a" goto :GetFolder
echo %NasFolder%
相關問題
- 1. 批處理:從絕對路徑獲取最後一個文件夾並與字符串進行比較
- 2. 從批處理文件中的路徑獲取文件夾名稱。不解決
- 3. 從路徑獲取文件夾名稱
- 4. 批處理文件:獲取父目錄的絕對路徑
- 5. 從maven獲取最後一個文件夾的名稱$ {project.basedir}
- 6. 如何從使用JavaScript的路徑獲取最後一個文件夾名稱和文件名?
- 7. 從完整文件路徑獲取文件夾名稱
- 8. 如何從文件路徑獲取父文件夾的名稱?
- 9. 避免路徑名稱與批處理
- 10. 批處理比較路徑名稱%1
- 11. 將絕對路徑轉換爲批處理文件中的相對路徑
- 12. 如何從絕對文件夾路徑獲取URL?
- 13. 從VideoView對象獲取絕對路徑和文件名
- 14. 如何從批處理腳本中的當前路徑中獲取更高級別文件夾的名稱?
- 15. Delphi 7從路徑中獲取文件夾名稱
- 16. 如何從給定路徑獲取子文件夾名稱Server.MapPath
- 17. Xamarin:獲取資產文件夾中文件的絕對路徑
- 18. 在批處理文件中獲取兩個層次的路徑
- 19. 如何從批處理腳本中的文件路徑獲取目錄路徑
- 20. 批處理文件下載一個文件,名稱從FTP
- 21. 在makefile中,如何獲取從一個絕對路徑到另一個絕對路徑的相對路徑?
- 22. 在批處理文件中創建一個相對路徑
- 23. 如何僅從路徑中提取文件/文件夾名稱?
- 24. 獲取文件的絕對路徑
- 25. 獲取絕對文件路徑
- 26. 文件上傳:獲取絕對路徑
- 27. Android:如何按最後一個文件夾名稱排序路徑?
- 28. Eclipse插件文件夾絕對路徑
- 29. 獲取Java中隱藏文件夾的絕對路徑
- 30. 獲取PhoneGap中資產文件夾的絕對路徑
+1,但是你應該總是用這種方式引用''Set「FromPath = C:\ Program Files \ Blah」'否則你失敗並且'Set FromPath = C:\ Documents&Settings' – jeb
@jeb'SET FromPath = C :\ Docs and Settings'是有效的。就像@ Hand-E所說的那樣,要使用該變量,請用引號括起來,''%FromPath%「'。 – aphoria
很明顯,「文檔和設置」有效,但有一個&符號失敗,並且文件/路徑名稱允許使用&符號 – jeb