我正在使用批处理脚本将文件自动备份到我的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