如何使用批处理文件替换\在/我的文件的完整路径中?

时间:2015-02-26 23:32:57

标签: batch-file subdirectory

假设在我的Windows机器上有一个名为root的文件夹。在这个文件夹中,我有大约10个名为MathematicsPhysicsChemistry等的子文件夹,在每个子文件夹中,我有大约30个子文件夹,如John-doe,{{1 }},Sara-smith等,并且在每个子子文件夹中我还有大约6-7个具有不同扩展名的文件,例如Nicola-sheperd.png .jpg,{{1} },.pdf.tex.idx等 要列出所有文件夹中的所有.txt个文件,请使用以下批处理文件:

.aux

但它有一个问题:

它显示了pdf这样的完整路径,而出于某种原因我希望它是@echo off for /r %%F in (*.pdf) do echo %%~dpF%%~nxF >>dir.txt
如何将E:\root\mathematics\john-doe\paper.pdf替换为E:/root/mathematics/john-doe/paper.pdf

1 个答案:

答案 0 :(得分:1)

要将\替换为/,请使用string replacement。如果您在for循环中执行此操作,则还需要延迟扩展。从控制台执行setlocal /?以获取更多信息。对于它的价值,%%~dpF%%~nxF是说%%~fF的难点。有关详细信息,请参阅控制台中for /?的最后几页。

@echo off
setlocal enabledelayedexpansion

>dir.txt (
    for /r "E:\root" %%I in (*.pdf) do (
        set "file=%%~fI"
        echo !file:\=/!
    )
)