获取文件路径而不包含文件名称

获取文件路径而不包含文件名称

文件 song.mp3 位于

C:\x-folders\y-folder\z-folder\song.mp3

我如何将该路径存储在变量中?

C:\x-folders\y-folder\z-folder\

谢谢

答案1

有几种方法可以通过命令行执行此操作,我将在下面列出我能想到的两种方法,供您在有机会时参考和测试。我还会提供其他资源以供进一步研究。

示例一

for %a in ("C:\x-folders\y-folder\z-folder\song.mp3") do set var=%~dpa 

然后%var%将设置变量,因此只需参考%var%适用的值。


示例二

如果你需要遍历包含许多.mp3文件的文件夹,那么你可以使用这个语法

for /f "tokens=*" %a in ('dir /b "C:\SomeFolder\*.mp3"') do set var=%~fa\

然后%var%将是设置变量,因此只需引用%var%适用的值即可。!var!如果需要,您可以这样引用启用延迟扩展如果您计划以此方式引用多个文件及其所在文件夹路径,则取决于您需要使用循环完成的具体任务。最后,您也可以使用它dir /s /b来递归遍历目录。


更多资源

  • 目录
  • 为了

    变量替换(FOR /?)

    此外,FOR 变量引用的替换功能也得到了增强。现在您可以使用以下可选语法:

    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    
  • 启用延迟扩展

    延迟扩展将导致批处理文件中的变量在执行时而不是在解析时扩展,此选项通过 SETLOCAL EnableDelayedExpansion 命令打开。


    当延迟扩展生效时,可以使用 !variable_name! 立即读取变量,您还可以读取和使用将显示初始值(在行首扩展)的 %variable_name%。

相关内容