使用dir从Txt文件中提取文件名

时间:2015-04-30 18:05:50

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

我有一个txt文件,用于存储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 Log 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应该返回目录末尾的文件名。 &#34; Station 5 Log 20150324.CSV&#34;

所以我运行了一个快速测试,看看我是否能找出从目录中提取文件名所需的设置并运行它:

    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]

1 个答案:

答案 0 :(得分:1)

set /p LogFile=<"C:\Users\XXXX\Desktop\Macro Folder\LogFile.txt"
for %%a in ("%LogFile%") do set "FileName=%%~nxa"

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