【问题标题】:Extract File Name from Txt File with dir使用 dir 从 Txt 文件中提取文件名
【发布时间】:2015-04-30 18:05:49
【问题描述】:

我有一个 txt 文件,用于存储 bat 中使用的目录。

在 bat 中我需要设置两个变量。完整目录,然后是目录中的文件名。我查看了与之相关的命令,发现:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true 这说明我需要 %~n1 命令。

txt文件中的目录为: O:\Folder1\Folder2\Folder3\Station 5 日志 20150324.CSV

所以在我的球棒中我尝试使用这个:

    set /p LogFile=<"C:\Users\XXXX\Desktop\Macro Folder\LogFile.txt"
    set /p FileName=<%~n1"C:\Users\XXXX\Desktop\Macro Folder\LogFile.txt"

这并没有按照我想要的方式工作。 FileName 应该返回目录末尾的文件名。 "5号站日志20150324.CSV"

所以我运行了一个快速测试,看看我是否可以弄清楚我需要什么设置才能从目录中提取文件名并运行这个:

    Echo on
    Rem References the current week text file to find the name of the current week folder it should be saving to
    set /p LogFile=<"C:\Users\xxxx\Desktop\Macro Folder\LogFile.txt"
    set /p FileName1=<%~n1"C:\Users\xxxx\Desktop\Macro Folder\LogFile.txt"
    set /p FileName2=<"C:\Users\xxxx\Desktop\Macro Folder\LogFile.txt"%~n1
    set /p FileName3=<"C:\Users\xxxx\Desktop\Macro Folder\LogFile.txt"

    echo %LogFile%
    echo %FileName1%
    echo %FileName2%
    echo %~n1%FileName3%
    echo %FileName3%
    Pause

这些选项似乎都没有返回文件名,它们实际上让我问了比我想要的更多的问题,所以我在这里。关于如何从 txt 文件中获取文件名的任何想法?

[Windows 7]

【问题讨论】:

    标签: windows csv batch-file windows-7 cmd


    【解决方案1】:
    set /p LogFile=<"C:\Users\XXXX\Desktop\Macro Folder\LogFile.txt"
    for %%a in ("%LogFile%") do set "FileName=%%~nxa"
    

    for 命令使用该变量创建文件引用,存储在%%a 中,我们只需获取引用文件的名称和扩展名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多