我想编写批处理文件,它将循环遍历包含备份目录的所有目录,并删除其中超过X天的文件.
在我想要运行我的脚本的计算机上,没有“forfile”命令.
没有Power Shell,因此CMD或VBScripts似乎只是完成此任务的方法.
在我想要运行我的脚本的计算机上,没有“forfile”命令.
没有Power Shell,因此CMD或VBScripts似乎只是完成此任务的方法.
目前我有“设置”语句的问题 – 似乎当我调用%checkpath%时,我没有收到预期的文件夹.
rem we will memorize current directory pushd %cd% set folder="C:\Documents and Settings\myname\Desktop" cd %folder% rem loop only folders with five chars within their names (unfortunately on less also for /D %%g in (?????) DO ( set checkpath="%cd%\%%g\backup" if exist %checkpath% ( for %%a in ('%%g\backup\*.*') do ( set FileDate=%%~ta set FileDate=%%FileDate:~0,10%% rem here I want to compare file modification data with current date ) ) popd pause
解决方法
您需要使用延迟扩展来读取您在for循环中设置的变量.
试试这个
setlocal enabledelayedexpansion rem we will memorize current directory pushd %cd% set folder="C:\Documents and Settings\myname\Desktop" cd %folder% rem loop only folders with five chars within their names (unfortunately on less also for /D %%g in (?????) DO ( set checkpath="%cd%\%%g\backup" if exist !checkpath! ( for %%a in ('%%g\backup\*.*') do ( set FileDate=%%~ta set FileDate=!%FileDate:~0,10%! rem here I want to compare file modification data with current date ) ) popd pause
用您创建的变量替换%’,将表示它使用延迟扩展.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。