如何在没有使用批处理文件逐一声明的情况下检索具有多个子文件夹的目录中的文件?

如何在没有使用批处理文件逐一声明的情况下检索具有多个子文件夹的目录中的文件?

问题描述:

我有一个批处理文件,它可以检索目录中的文件,但只能在一个文件夹中并通过声明确切的文件夹。如何将我的批处理文件更改为动态文件,以便可以检索subfolders中的特定文件。如何在没有使用批处理文件逐一声明的情况下检索具有多个子文件夹的目录中的文件?

我在我的批处理文件中声明了这行代码,该文件指定了应该检索文件的文件夹。

呼叫FTPDownload("SERVER","USERNAME","PASSWORD","D:dir1/dir2/dir3/",fyldt_currentday)

我怎样才能检索中的文件全部dir3subfolders未声明的一个接一个?

你可以简单地得到当前目录的字符长度,并从绝对列表中删除

setlocal EnableDelayedExpansion 
for /L %%n in (1 1 500) do if "!__cd__:~%%n,1!" neq "" set /a "len=%%n+1" 
setlocal DisableDelayedExpansion 
for /r . %%g in (*.log) do (
    set "absPath=%%g" 
    setlocal EnableDelayedExpansion 
    set "relPath=!absPath:~%len%!" 
    echo(!relPath! 
    endlocal 
)