[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[日期时间] 批处理获取了文件的修改时间,怎么赋值给变量?

在网上找了很多教程和资料,原来都是出自批处理之家论坛,耐心的等待了一个小时后,终于可以发言了,终于找到组织了。
  1. set "pic_dir=E:\pic\"
  2. for /f %%i in ('dir /s /b %pic_dir%') do (
  3. echo %%~ti
  4. set str_data=%%~ti
  5. echo %str_data%
  6. )
复制代码
上面代码能输出文件的修改时间,但是我用一个变量来保存就不行了,我想获取他的分钟数
会提示这个错误:ECHO 处于关闭状态。

本帖最后由 canyuexiaolang 于 2012-8-18 18:46 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. set "pic_dir=E:\pic\"
  3. for /f %%i in ('dir /s /b %pic_dir%') do (
  4. echo %%~ti
  5. set str_data=%%~ti
  6. echo !str_data!
  7. )
复制代码
请论坛搜索 变量延迟 获取详解
1

评分人数

TOP

请论坛搜索 变量延迟 或许详解
canyuexiaolang 发表于 2012-8-18 18:32



    版主威武,可以获取到了
但我用这种方法获取系统时间的分钟数,好像不行,不知道要怎么弄
set str_server=%time:~3,2%
echo !str_server!

TOP

回复 3# ttbs123
  1. @echo off & setlocal enabledelayedexpansion
  2. set "pic_dir=E:\pic"
  3. for /f %%i in ('dir /s /b "%pic_dir%"') do (
  4.     set str_data=%%~ti
  5.     echo !str_data:~-2!
  6. )
  7. pause
复制代码


仅仅是分钟么= =

TOP

对不起是我弄错了,可以获取到

TOP

回复 5# ttbs123


好吧= =

TOP

回复  ttbs123


好吧= =
canyuexiaolang 发表于 2012-8-18 18:46



    我是想获取系统的分钟数,然后跟这个文件修改时间的分钟数做对比。
如果2者相减,绝对值大于10的话,就执行删除操作。

TOP

终于发帖不用计算器了

TOP

set /a aa=!str_server!-!str_data!
echo !aa!

绝对值怎么弄?

TOP

回复  ttbs123


好吧= =
canyuexiaolang 发表于 2012-8-18 18:46



    set /a aa=!str_server!-!str_data!
        if !aa!<0 set /a !aa!-=!aa!
        echo !aa!

用这样获取绝对值好像不行,版主救我

TOP

论坛搜索了一下,
好像这样取绝对值if !aa! lss 0 (set /a !aa!*=-1)

TOP

本帖最后由 canyuexiaolang 于 2012-8-18 20:22 编辑

回复 10# ttbs123
  1. @echo off
  2. set /p a=数字:
  3. if %a% lss 0 set /a a=-a
  4. echo %a%
  5. pause
复制代码

TOP

回复  ttbs123
canyuexiaolang 发表于 2012-8-18 20:18



    谢谢你,问题解决了

TOP

返回列表