我正在使用批處理腳本將文件自動備份到我的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. batch:從txt獲取路徑中的最後一個文件夾名稱
- 6. 拆分路徑並在批處理腳本中取最後一個文件夾名稱
- 7. 從maven獲取最後一個文件夾的名稱$ {project.basedir}
- 8. 在批處理腳本中獲取文件名中包含字符串的最新文件的絕對路徑
- 9. 如何從使用JavaScript的路徑獲取最後一個文件夾名稱和文件名?
- 10. 從文件路徑中取出最後一個文件夾
- 11. PHP:從路徑獲取最後一個目錄名稱
- 12. 路徑在一個批處理文件
- 13. 從批處理文件中獲取批處理文件的服務器名稱
- 14. 從完整文件路徑獲取文件夾名稱
- 15. 如何從文件路徑獲取父文件夾的名稱?
- 16. 批處理:獲取上一個目錄中文件夾的完整路徑?
- 17. 從fd獲取文件路徑/名稱
- 18. 批處理比較路徑名稱%1
- 19. 避免路徑名稱與批處理
- 20. 將絕對路徑轉換爲批處理文件中的相對路徑
- 21. 如何從絕對文件夾路徑獲取URL?
- 22. 從VideoView對象獲取絕對路徑和文件名
- 23. 如何從批處理腳本中的當前路徑中獲取更高級別文件夾的名稱?
- 24. 批處理文件 - 從註冊表中獲取路徑
- 25. 批處理命令只從字符串獲取文件路徑
- 26. 如何從給定路徑獲取子文件夾名稱Server.MapPath
- 27. Xamarin:獲取資產文件夾中文件的絕對路徑
- 28. UWP從絕對路徑或相對路徑解析文件夾
- 29. 在批處理文件中獲取兩個層次的路徑
- 30. 如何從批處理腳本中的文件路徑獲取目錄路徑
+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