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

[日期时间] 批处理在for下如何截取变量?

Set Folder1=e:\1
setlocal enabledelayedexpansion
for /r "%Folder1%" %%i in (*) do (
set riqi=%%~ti 此处能获取各个文件的创建时间
!riqi! 此处不管是!riqi!还是%riqi%都无法显示
%date% 能显示正常当前系统时间
set filedate=!riqi:~0,4!!riqi:~5,2!!riqi:~8,2!   不管是!还是%都不会显示变量值
set file2date=%date:~0,4%%date:~5,2%%date:~8,2% 正常格式化日期
)
pause

说明:
set riqi=%%~ti 执行后显示为文件创建日期 如 set riqi=2021/09/04 13:04
我现在想把这个20210904这个给截取下来,应该如何做?望大神指教

回复 1# 79794133
  1. setlocal enabledelayedexpansion
  2. set "Folder1=E:\1"
  3. if not exist "%Folder1%" (
  4.     echo 文件夹不存在
  5.     pause
  6.     goto :eof
  7. )
  8. for /r "%Folder1%" %%i in (*) do (
  9.     set "riqi=%%~ti"
  10.     echo !riqi!
  11.     set "filedate=!riqi:~0,4!!riqi:~5,2!!riqi:~8,2!"
  12.     echo !filedate!
  13.     pause
  14. )
  15. pause
复制代码
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ

请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

如果截取出来了,运行之后第7行应该会显示数值set filedate=xxxxxxxx,而不是set filedate=!riqi:~0,4!!riqi:~5,2!!riqi:~8,2!

TOP

回复 2# idwma


    如果截取出来了,运行之后第7行应该会显示set filedate=xxxxxxxx,而现在显示的是set filedate=!riqi:~0,4!!riqi:~5,2!!riqi:~8,2!


你可以试一下

TOP

回复 5# 79794133


    set命令的回显跟你理解的可能不一样,echo变量的值是正常的就行了。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表