使用批处理文件循环目录名称?

Abu*_*aty 19 loops batch-file

假设我有这个结构:

d:/
  -- /alpha/
  -- /beta/
  -- /gamma/
  -- /delta/
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行遍历这些文件夹的批处理文件(但不是通过其中的子文件夹).

如何使用FOR LOOP获得此结果(假设我不知道文件夹的名称和数量):

ren alpha alpha1
ren beta beta1
ren gamma gamma1
ren delta delta1
Run Code Online (Sandbox Code Playgroud)

Dav*_*tin 37

这就是你应该需要的:

for /D %i in (*) do rename "%i" "%i1"
Run Code Online (Sandbox Code Playgroud)

根据帮助,/ D对目录名执行命令,可以使用该命令获取for /?

如果启用了命令扩展,则支持以下其他形式的FOR命令:

FOR/D%变量IN(设置)DO命令[命令参数]

If set contains wildcards, then specifies to match against directory
names instead of file names.
Run Code Online (Sandbox Code Playgroud)

  • `for/D %% a in(*)重命名"%% a""%% a1"`<---在批处理文件中使用此样式.重要的变化是百分号变化,引号允许您处理长路径名称. (28认同)
  • 只需放置通配符所在的路径,例如(c:\new \\*) (3认同)
  • 这将运行当前目录的命令!对于任何特定目录运行它会做什么更改,比如`C:\ New`? (2认同)
  • 如果要使用多个命令该怎么办? (2认同)