本帖最后由 aaaa25852 于 2021-10-5 16:03 编辑
主要是两个命令的组合显示
1. 首先使用‘date /t’得到今天的年月日
2. 通过今天的年月日来遍历目录下今天修改过的文件
如果满足文件修改日期为今天,那么我就把文件信息打印出来。
dir /a:-d | findstr 2021/10/05
我能猜到错误应该是 “findstr !ct! %%x && echo %%x %%y” 这里,但是我不知道该如何修改。。。。。希望大佬教下怎么改。。。。
这是我写的命令- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- set var=
-
- for /f "delims=, " %%i in ('date /t') do (
- set var=%%i
- echo !var!
- for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
- call findstr !var! %%x && echo %%x %%y
- )
- )
- pause
- goto :eof
复制代码 后来我想通过 if 来比较字符串,但是更离谱,直接批处理起不来。。。。。- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- set var=
-
- for /f "delims=, " %%i in ('date /t') do (
- set var=%%i
- echo !var!
- for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
- if /i !var! == %%x(
- echo %%x %%y
- )
- )
- )
- pause
- goto :eof
复制代码 虽然找到【折中】中的方法用文件存储在查找,但是我并不想通过文件中转(霸蛮)能否直接用代码实现吗?- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- set var=
-
- del 1.txt
-
- for /f "delims=, tokens=1,* skip=5" %%x in ('dir /a:-d') do (
- echo %%x %%y >> 1.txt
- )
-
- for /f "delims=, " %%i in ('date /t') do (
- set var=%%i
- findstr !var! 1.txt >> 2.txt
- )
-
- pause
- goto :eof
复制代码 但是输出却是- FINDSTR: 无法打开 2021/10/05
- FINDSTR: 无法打开 2021/09/27
- FINDSTR: 无法打开 2021/09/27
- FINDSTR: 无法打开 2021/09/27
- FINDSTR: 无法打开 2021/10/05
- FINDSTR: 无法打开 2021/09/27
- FINDSTR: 无法打开 2021/09/27
- FINDSTR: 无法打开 2021/09/26
- FINDSTR: 无法打开 2021/09/27
- FINDSTR: 无法打开 2021/09/26
- FINDSTR: 无法打开 2021/09/26
- FINDSTR: 无法打开 11
- FINDSTR: 无法打开 个文件
- FINDSTR: 无法打开 26
- FINDSTR: 无法打开 0
- FINDSTR: 无法打开 个目录
- FINDSTR: 无法打开 426
- 请按任意键继续. . .
复制代码
|