【问题标题】:Get the file name from a full or relative path knowing that this one is not a parameter of the batch从完整路径或相对路径获取文件名,知道这不是批处理的参数
【发布时间】:2013-04-17 23:06:54
【问题描述】:

当一个文件连同相对路径或完整路径...作为批处理的参数给出时,我知道如何扩展 %1 以获取文件名

    %~n1 

这很简单!

尽管如此,我想从批处理中正确处理的相对/完整路径中获取文件名。

请看我的代码。我想扩展 %%x (在我的例子中是相对路径)以仅考虑其文件名。请问你有什么想法吗?谢谢

 @echo off
 SETLOCAL EnableDelayedExpansion
 set currDir=%CD%
 for /f "tokens=*" %%x in (Lists.out) do (
 echo %%x
 set filetxt=%%x)

这是一个示例“Lists.out”文件,其中包含一些不同的文件内置相对路径。 “Lists.out”可以由

组成
   Temp\my file1_X
   Temp\my file2_X
   ...............

【问题讨论】:

  • 您应该使用"delims=" 而不是"tokens=*"。然后,如果您想将%%x 扩展为一个完整的驱动器:path\filename.ext 使用%%~fx。请参阅help for 的最后几页了解更多信息。

标签: batch-file filenames


【解决方案1】:
...
 echo %%~nx
 set filetxt=%%~nx)

应该可以解决你的问题。

如果你也想要扩展名,也可以使用~nxx

【讨论】:

    猜你喜欢
    • 2011-12-11
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2017-03-16
    • 2011-01-02
    相关资源
    最近更新 更多