Windows批处理文件,循环浏览文件夹中的文件以创建参数列表以传递到另一个脚本

斯温斯特

我有一个Windows批处理文件,可以处理一堆文件。为此,我使用以下行:

forfiles /p "%~dpn1%LogDir%" /m "%SupportLog%*" /c "cmd /c logreader.py @file > \"%~dpn1%ParsedLogDir%\@file_Logreader.txt\"

这可以正常工作,但实际上遍历了我所有的文件(%SupportLog%*),并将每个文件一个一个地传递到“ logreader.py”脚本中。

我真正想做的是创建所有这些文件的列表或参数,并将所有这些文件立即传递到Python脚本中,这样应运行的命令类似于:

logreader.py "logfile.log" "logfile.log.1" "logfile.log.3" .....

我试图在forfile命令中使用SET命令,例如:

forfiles /p "%~dpn1%LogDir%" /m "%SupportLog%*" /c "cmd /c set PARAMS=%PARAMS%@file "

但是,运行此命令并将ECHO保持打开状态时,我看到:

forfiles /p "C:\Path\log" /m "logfile.log*" /c "cmd /c set PARAMS=@file "

这是不正确的。当我“回显%PARAMS%”时,我没有任何结果。

有没有办法做到这一点?

多谢

约瑟夫·Z

更改 cmd实例中的环境变量(这就是cmd /c调用的内容)不会影响父cmd进程中的环境下一个代码段可以帮助您:

SETLOCAL EnableExtensions EnableDelayedExpansion
set "LogDir=%~dpn1log"         my guess only
set "SupportLog=logfile.log"   my guess only
set "PARAMS="                  initial value
rem 1st try for /R "%LogDir%" %%a in ("%SupportLog%*") do set PARAMS=!PARAMS! "%%~a"
rem 2nd try for %%a in ("%LogDir%\%SupportLog%*") do set "PARAMS=!PARAMS! "%%~a""
rem 3rd try
for %%a in ("%LogDir%\%SupportLog%*") do set "PARAMS=!PARAMS! "%%~nxa""
echo logreader.py %PARAMS%

请注意,命令式命令logreader.pyecho用于调试目的。

但是,我不知道>重定向的目标,对不起...

资源(必读):

编辑

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

批处理文件FOR循环仅在文件夹存在于另一个文件夹中时才复制文件夹

创建一个批处理文件,该文件将文本文件和文件夹中的文件名进行比较,如果匹配,它将文件复制到另一个文件夹

如何使用Windows批处理文件或VBS脚本一次将多个文件从2个文件夹一次复制到另一个文件夹

批处理文件可将文件随机复制到另一个文件夹

需要创建一个批处理文件以从一个文件夹中选择一个随机文件并复制到另一个文件夹

批处理文件以将文件夹移动到另一个

从另一个文件夹运行批处理文件

批处理文件脚本将文件(文本文件的输入行)从一个文件夹复制到另一个文件夹

批处理文件将 2 个最近的文件复制到另一个文件夹中

循环批处理文件,用于将不同文件夹中的多个文本文件合并到另一个不同文件夹中的一个文本文件

将截断的文件名传递到另一个批处理文件

循环调用另一个批处理文件的批处理文件

创建一个批处理文件以将日志分类到各自的月年文件夹中......?

根据今天的日期创建一个文件夹,然后使用批处理文件将文件复制到新文件夹中

批处理文件可将文件从文本文件中的源移动到另一个文本文件中的多个文件夹

批处理脚本,从列出的文件和文件夹列表中创建一个ZIP文件

从另一个批处理文件调用一个批处理,并从外部批处理中设置内部批处理文件参数

将文件夹路径作为参数从 Windows 批处理文件传递到 cygwin bash 脚本

批处理文件,选择x数量的文件并将其复制到另一个文件夹

批处理文件,选择数量为%x%的文件并将其复制到另一个文件夹

Windows批处理文件将一个文件夹中的文件列出到csv/txt文件中

如何在批处理文件中传递来自另一个 perl 脚本的输入

如何将变量从一个批处理文件传递到另一个批处理文件?

是否可以使用Powershell或批处理文件将文件夹中的每个文件重命名为另一个名称?

批处理 Windows - 如何创建一个循环来重命名不同文件夹中的许多文件?

批处理文件-如何读取一个文件夹中的多个.txt文件?

如何在另一个批处理文件中调用一个批处理文件?

如何从另一个文件夹中的批处理中运行.bat

如何创建一个批处理文件来检查文件夹中是否存在四个特定的文件/文件夹?