【问题标题】: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 /? 看看如何。

标签: loops batch-file


【解决方案1】:

字里行间,怎么样

dir /s/b /a-d %*

/a-d 忽略目录名。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 2020-05-05
      • 1970-01-01
      • 2015-10-30
      • 2021-06-15
      • 1970-01-01
      相关资源
      最近更新 更多