批处理:从绝对路径获取最后一个文件夹名称

lua*_*oob 2 directory path batch-file absolute

我正在使用批处理脚本自动将文件备份到我的NAS,我需要从绝对路径获取最后一个文件夹名称,例如从"C:\ Things\Folder"到"Folder"

Han*_*ood 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
Run Code Online (Sandbox Code Playgroud)

无论你做什么,都不要在Set NasPath=...声明的任何部分加上引号.以这种方式使用引号:

Set FromPath=C:\Program Files\Blah
Set NasPath=C:\Things\Folder
RoboCopy "%FromPath%" "%NasPath%"
Run Code Online (Sandbox Code Playgroud)

不要这样使用引号:

Set FromPath="C:\Program Files\Blah"
Set NasPath="C:\Things\Folder"
RoboCopy %FromPath% %NasPath%
Run Code Online (Sandbox Code Playgroud)

  • +1,但您应始终使用“ Set“ FromPath = C:\ Program Files \ Blah”这样的引号,否则会因`Set FromPath = C:\ Documents&Settings`而失败 (2认同)