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

你想要的应该只是第二个问题吧,直接上第二个的脚本
  1. @echo off
  2. %1(for /f "tokens=1,2 delims=[" %%a in ('%~s0 :^|sort') do echo;%%b %%a)>结果.txt&pause&exit
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%a in ('dir /ad /s /b') do (
  5. for /f "tokens=1,2" %%b in ('dir /tc /od "%%a"^|findstr "%%~nxa"')  do (
  6. set name=%%~nxa                              
  7. echo;%%~ta[!name:~0,30!
  8. )
  9. )
  10. endlocal
复制代码
修改,对齐一下

TOP

回复 3# raozhao2008


、汗、把我的代码的for循环提出来单独成批处理执行得到的就是修改日期呀
  1.         修改日期[文件名
  2.         修改日期[文件名
  3.         修改日期[文件名
  4.         修改日期[文件名
复制代码

TOP

本帖最后由 回家路上 于 2015-8-13 12:43 编辑

回复 5# raozhao2008


把这个批处理放到【当前目录】,执行没反应?
结果.txt里没有生成按修改时间排序的文件。稍等一会儿,等执行完,出现:请按任意键继续. . .
没有反应是什么概念,连错误都没有??
如果有错误,就发错误。
第二个for提传来就是修改时间的获取
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /ad /s /b') do (
  3. for /f "tokens=1,2" %%b in ('dir /tc /od "%%a"^|findstr "%%~nxa"')  do (
  4. set name=%%~nxa                                            
  5. echo;!name:~0,30! %%~ta
  6. )
  7. )
  8. pause
复制代码

TOP

回复 7# raozhao2008


(1)
  1. dir /ad /s /b
复制代码
能遍历当前目录下及子目录下的
(2)
  1. %%~nxa
复制代码
是只去名,不包含路径的
这样,你如果有不同级但是名字相同的就会好像显示多次一样,可明显不可能是同一个的,修改时间都不一样。。
要显示全路径的话,把%%~nxa变为%%a
(3)要知道%1什么意思,先知道%~s0什么意思
%~s0指的是本文件,就是当前批处理文件
在批处理里,直接写一个bat文件的名称,就是执行这个文件
所以【%~s0 :】意思是,执行当前批处理,并且传参数“:”
这样在第二次进入的时候,%1就是接受的第一个参数,为“:”就是注释的意思。第一行就不执行了。(第一次%1是空)
  1. %~s0 :|sort
复制代码
就是把当前批处理的执行输出进行排序

就这些吧,还有不明白的?

TOP

回复 9# raozhao2008


懵了。
上图,路径结构图,效果图
文件,测试的文件夹
可以等待高手来解决。

TOP

回复 10# 回家路上


改了一下
  1. @echo off
  2. %1(for /f "tokens=1,2 delims=[" %%a in ('%~s0 :^|sort') do echo;%%b  %%a)&pause&exit /b
  3. for /f "delims=" %%a in ('dir /ad /s /b') do (
  4.         for /f "tokens=1,2" %%b in ('dir /tc "%%a"^|findstr "[^.]\.$"')  do (
  5.                 echo;%%~ta[%%a
  6.         )
  7. )
复制代码

TOP

返回列表