1

我在批处理文件中有一个 for 循环:

@echo off
set logpath1=C:\path\to\first\log
set logpath2=C:\path\to\second\log
FOR %%G IN (%logpath1% %logpath2%) DO (
  pushd %%G
  pushd ..\
  for %%D IN (%CD%) DO SET "dirname=%%~nxD"
  popd
  echo Will prefix files in %%G with %supername%
  :: do operations.
  popd
)

但是,这似乎并没有改变我的工作目录。如果我从

C:\tmp\path\to

然后我得到

Will prefix files in C:\path\to\first\log with tmp
Will prefix files in C:\path\to\second\log with tmp 

我的目的是将日志文件压缩到多个目录中。我尝试过 chdir、cd /d 和 &~pd0 而不是 %CD%,并搜索了高低。谁能告诉我为什么这不起作用?

4

1 回答 1

2

setlocal enabledelayedexpansion

在批处理文件的顶部并在循环中使用!CD!而不是。%CD%根据%supername%设置的位置,您可能也需要在那里使用!

于 2012-04-27T20:18:05.863 回答