批处理for /r循环参数使用变量的问题
答案:1 悬赏:20 手机版
解决时间 2021-11-27 10:25
- 提问者网友:無理詩人
- 2021-11-27 06:43
批处理for /r循环参数使用变量的问题
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-11-27 07:22
@echo off
set LogDir=D:wangluo-log
setlocal enabledelayedexpansion
cd /d %LogDir%
for /d %%k in (*) do (
pushd %LogDir%\%%k
for /r %%a in (*.eml *.log) do (
if exist "%%~a" (del /f /q "%%~a")
)
popd
)
endlocal追问之前试过了不行,我在外面的for之前就设置了pushd %LogDir%,其他代码用,再用pushd %LogDir%\%%k切换,不知道为什么切换不了,echo %cd%输出还是D:\wangluo-log,delete的是%LogDir%目录下的文件,而不是遍历的子目录%%k,因为在for /r之前要判断子目录的名字,有几个目录的文件要压缩,不能delete。需要分析的话,我贴出整个脚本追答那就把你之前的pushd删掉。我的代码是正常的。然后你自己扩充功能吧!
set LogDir=D:wangluo-log
setlocal enabledelayedexpansion
cd /d %LogDir%
for /d %%k in (*) do (
pushd %LogDir%\%%k
for /r %%a in (*.eml *.log) do (
if exist "%%~a" (del /f /q "%%~a")
)
popd
)
endlocal追问之前试过了不行,我在外面的for之前就设置了pushd %LogDir%,其他代码用,再用pushd %LogDir%\%%k切换,不知道为什么切换不了,echo %cd%输出还是D:\wangluo-log,delete的是%LogDir%目录下的文件,而不是遍历的子目录%%k,因为在for /r之前要判断子目录的名字,有几个目录的文件要压缩,不能delete。需要分析的话,我贴出整个脚本追答那就把你之前的pushd删掉。我的代码是正常的。然后你自己扩充功能吧!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯