如何循环通过批量参数提供的目录?

Posted

技术标签:

【中文标题】如何循环通过批量参数提供的目录?【英文标题】:How to loop over a directory supplied via argument in batch? 【发布时间】:2021-04-29 22:15:59 【问题描述】:

我想遍历一个目录(由参数 1 提供)并打印目录的内容(我使用 echo 作为测试;稍后我将使用每个文件作为命令的输入)。

我要运行命令:

./script.bat C:/Foo/

这将触发以下(for循环是需要帮助的地方)

@echo off

set arg1=%1
shift

cd /d %arg1%
for %%i in (*.*) do @echo %%i

然后列出C:\Foo目录下的所有文件

这是最好的方法吗?我宁愿删除cd 调用并让循环遍历%arg1,但我不确定这是批处理方式(我是一个bash 人)。

【问题讨论】:

如果您只想列出目录的内容,只需使用带有命令行参数的DIR 命令。 dir /a-d /b "%~1\*.*"。请记住,Windows 使用反斜杠作为路径分隔符。 我认为这是为了我for /f %%i in ('dir /b %arg1%') do @echo %%i,但我只得到文件名。如何获得完整路径? 输入for /? 看看如何。 【参考方案1】:

字里行间,怎么样

dir /s/b /a-d %*

/a-d 忽略目录名。

【讨论】:

【参考方案2】:

如果其他人正在寻找这个,我能够实现我想要的

for /f %%i in ('dir /s/b %arg1%') do @echo %%i

【讨论】:

以上是关于如何循环通过批量参数提供的目录?的主要内容,如果未能解决你的问题,请参考以下文章

我无法循环遍历我的 ids 参数,如何接收和循环遍历

vue axios 批量删除 数组参数

通过sed命令替换批量文件中的字符串

ArcGIS中的批量处理

如何在spring data jpa中为自定义采石场提供可变参数而不使用for循环

批量--04---移动构件