我正在使用批处理脚本自动将文件备份到NAS,并且需要从绝对路径(例如从“C:\ Things \ Folder”到“Folder”)获取最后的文件夹名称。
最佳答案
这有点hack,但是您可以使用:
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%
关于path - 批处理:从绝对路径获取最后的文件夹名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7250546/