找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16165|回复: 12

[文本处理] 【已解决】请教大佬帮忙排批处理下错误。

[复制链接]
发表于 2021-10-5 00:47:40 | 显示全部楼层 |阅读模式
本帖最后由 aaaa25852 于 2021-10-5 16:03 编辑

主要是两个命令的组合显示
1. 首先使用‘date /t’得到今天的年月日
2. 通过今天的年月日来遍历目录下今天修改过的文件
如果满足文件修改日期为今天,那么我就把文件信息打印出来。
dir /a:-d | findstr 2021/10/05

我能猜到错误应该是 “findstr !ct! %%x && echo %%x %%y” 这里,但是我不知道该如何修改。。。。。希望大佬教下怎么改。。。。

这是我写的命令

  1. @echo off   
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set var=

  4. for /f "delims=, " %%i in ('date /t') do (
  5.         set var=%%i
  6.         echo !var!
  7.         for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
  8.                 call findstr !var! %%x && echo %%x %%y
  9.         )
  10. )
  11. pause
  12. goto :eof
复制代码
后来我想通过 if 来比较字符串,但是更离谱,直接批处理起不来。。。。。

  1. @echo off   
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set var=

  4. for /f "delims=, " %%i in ('date /t') do (
  5.         set var=%%i
  6.         echo !var!
  7.         for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
  8.                 if /i !var! == %%x(
  9.                         echo %%x %%y
  10.                 )
  11.         )
  12. )
  13. pause
  14. goto :eof
复制代码
虽然找到【折中】中的方法用文件存储在查找,但是我并不想通过文件中转(霸蛮)能否直接用代码实现吗?

  1. @echo off   
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set var=

  4. del 1.txt

  5. for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
  6.         echo %%x %%y >> 1.txt
  7. )

  8. for /f "delims=, " %%i in ('date /t') do (
  9.         set var=%%i
  10.         findstr !var! 1.txt >> 2.txt
  11. )

  12. pause
  13. goto :eof
复制代码
但是输出却是

  1. FINDSTR: 无法打开 2021/10/05
  2. FINDSTR: 无法打开 2021/09/27
  3. FINDSTR: 无法打开 2021/09/27
  4. FINDSTR: 无法打开 2021/09/27
  5. FINDSTR: 无法打开 2021/10/05
  6. FINDSTR: 无法打开 2021/09/27
  7. FINDSTR: 无法打开 2021/09/27
  8. FINDSTR: 无法打开 2021/09/26
  9. FINDSTR: 无法打开 2021/09/27
  10. FINDSTR: 无法打开 2021/09/26
  11. FINDSTR: 无法打开 2021/09/26
  12. FINDSTR: 无法打开 11
  13. FINDSTR: 无法打开 个文件
  14. FINDSTR: 无法打开 26
  15. FINDSTR: 无法打开 0
  16. FINDSTR: 无法打开 个目录
  17. FINDSTR: 无法打开 426
  18. 请按任意键继续. . .
复制代码
发表于 2021-10-5 01:05:06 | 显示全部楼层
本帖最后由 newswan 于 2021-10-5 01:11 编辑

  1. for /f "delims=, " %%i in ('date /t') do (
  2.     set d=%%i
  3. )

  4. for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
  5.     echo %%x | findstr %d% && echo %%x %%y
  6. )
复制代码
用不着findstr
  1. for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
  2.     if %%x==%d%  echo %%x %%y
  3. )
复制代码
发表于 2021-10-5 01:07:12 | 显示全部楼层
获取文件修改日期

  1. for /f "usebackq tokens=* delims=" %%a in (`dir /b "*.txt"`) do (
  2.     echo "%%~ta"
  3. )
复制代码
 楼主| 发表于 2021-10-5 01:17:45 | 显示全部楼层
回复 2# newswan


    为什么我写的 if == 批处理会直接崩溃呢。。。
 楼主| 发表于 2021-10-5 01:18:45 | 显示全部楼层
回复 3# newswan


    没想到凌晨还有大佬逛论坛的。。。
 楼主| 发表于 2021-10-5 01:22:52 | 显示全部楼层
本帖最后由 aaaa25852 于 2021-10-5 01:35 编辑

回复 2# newswan


    厉害了。但是我没想明白为什么我写的if会直接崩溃。。。。
  1. @echo off   
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set var=

  4. for /f "delims=, " %%i in ('date /t') do (
  5.         set var=%%i
  6.         echo !var!
  7.         for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
  8.                 if /i !var! == %%x(
  9.                         echo %%x %%y
  10.                 )
  11.         )
  12. )
  13. pause
  14. goto :eof
复制代码
------------------
仅仅只是 if 两个比较值写反了就会崩溃。。。。
发表于 2021-10-5 02:12:34 | 显示全部楼层
本帖最后由 newswan 于 2021-10-5 02:15 编辑

回复 6# aaaa25852


    if 后面的括号?加个空格试试
发表于 2021-10-5 02:18:49 | 显示全部楼层
本帖最后由 newswan 于 2021-10-5 02:30 编辑

最好不要用tab,转成空格,4个就好
tab通常是8个
发表于 2021-10-5 10:04:43 | 显示全部楼层

本帖最后由 Fit 于 2021-10-5 15:09 编辑

错-------------------------------------------
发表于 2021-10-5 15:17:01 | 显示全部楼层
第二个for改成这样可以不
       for /f "tokens=* " %%x in ('dir /a:-d ^| find "!var!"') do (
                echo %%x
        )
 楼主| 发表于 2021-10-5 16:02:55 | 显示全部楼层
回复 8# newswan


    感谢抽空答复,问题解决了
 楼主| 发表于 2021-10-5 16:03:00 | 显示全部楼层
回复 10# Fit


        感谢抽空答复,问题解决了
发表于 2021-10-5 17:35:41 | 显示全部楼层
回复 10# Fit


可以,很好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 01:45 , Processed in 0.038636 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表