如何循环通过批量参数提供的目录?
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
【讨论】:
以上是关于如何循环通过批量参数提供的目录?的主要内容,如果未能解决你的问题,请参考以下文章