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

10-13 06:01