batch-file - 如何在不使用批处理文件一一声明的情况下检索包含许多子文件夹的目录中的文件?

标签 batch-file vbscript subdirectory

我有一个批处理文件,它通过声明确切的文件夹来检索目录中的文件,但仅在一个文件夹中。如何将批处理文件更改为动态文件,以便它可以检索子文件夹中的特定文件。

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

调用FTPDownload("SERVER","USERNAME","PASSWORD","D:dir1/dir2/dir3/",fyldt_currentday)

如何在不逐一声明的情况下检索 dir3 的所有子文件夹中的文件?

最佳答案

您可以简单地获取当前目录的字符长度,并将其从绝对列表中删除

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
)

关于batch-file - 如何在不使用批处理文件一一声明的情况下检索包含许多子文件夹的目录中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45957385/

相关文章:

javascript - 关闭浏览器标签的脚本

asp-classic - 有没有办法通过一个值而不是在 VBScript 中一个一个地推进一个 for 循环?

ffmpeg:如何在 m3u8 播放列表中包含动态路径? (播放列表和片段位于不同的目录中。)

c# - 批处理文件的执行不符合 C# 中的预期

batch-file - 播放歌曲的批处理文件

r - 在 Rscript.exe 中执行表达式

c# - 使用远程计算机上的 dll

python - 使用 os.walk 读取文件

qt - Qt 项目中的子目录

linux - 关于如何使用脚本制作过滤器的问题