Board logo

标题: [文件操作] 批处理如何获取文件的路径、创建时间和文件名 [打印本页]

作者: bat.bat    时间: 2016-10-18 10:29     标题: 批处理如何获取文件的路径、创建时间和文件名

本帖最后由 pcl_test 于 2016-10-18 15:24 编辑

关dir提取文件创建时间、路径方法。
格式如下:
路径  创建时间  名称
作者: flyinnet9    时间: 2016-10-18 11:34

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "tokens=1-4" %%a in ('dir /a-d /tc ^|findstr [0-9]:') do set #%%d=%%a
  4. for /f "delims=" %%a in ('forfiles /c "cmd /c echo.@path"') do echo.%%~dpa !#%%~nxa! %%~nxa
  5. pause
复制代码

作者: bat.bat    时间: 2016-10-18 14:38

本帖最后由 bat.bat 于 2016-10-18 14:42 编辑

回复 2# flyinnet9
我试了一下,反应这个forfiles不是内部与外部命令,在帮帮忙
作者: pcl_test    时间: 2016-10-18 15:09

本帖最后由 pcl_test 于 2016-10-18 15:14 编辑

保存为bat文件运行
  1. @echo off
  2. for /f "tokens=1-3*" %%a in ('dir /a-d/tc^|find ":"') do echo;%~dp0%%d ^| %%a %%b ^| %%d
  3. pause
复制代码
  1. @echo off
  2. set "fd=%~p0"
  3. wmic datafile where "drive='%~d0' and path='%fd:\=\\%'" get Name,InstallDate,FileName,Extension /value
  4. pause
复制代码
  1. //&cls&dir /a-d/b|cscript -nologo -e:jscript "%~f0"&pause&exit
  2. var fso=new ActiveXObject('Scripting.FileSystemObject'), s='';
  3. while(!WSH.StdIn.AtEndOfStream){
  4.     var f=fso.GetFile(WSH.StdIn.ReadLine());
  5.     s+=f.Path+' | '+(new Date(f.DateCreated)).toLocaleString()+' | '+f.Name+'\r\n';
  6. }
  7. WSH.Echo(s);
复制代码
  1. rem win7及以上系统运行
  2. powershell -c "dir|?{!$_.PSIsContainer}|select FullName,CreationTime,Name"
  3. pause
复制代码

作者: bat.bat    时间: 2016-10-19 15:10

本帖最后由 bat.bat 于 2016-10-19 17:14 编辑

回复 4# pcl_test
谢谢大神,我想在EF盘提取txt格式,又怎么写?帮帮忙了
作者: GNU    时间: 2016-10-19 19:30

回复 5# bat.bat
  1. @echo off
  2. cd /d E:\
  3. for /f "tokens=1-3*" %%a in ('dir /a-d/tc *.txt ^| find ":"') do echo;%~dp0%%d ^| %%a %%b ^| %%d
  4. cd /d F:\
  5. for /f "tokens=1-3*" %%a in ('dir /a-d/tc *.txt ^| find ":"') do echo;%~dp0%%d ^| %%a %%b ^| %%d
  6. pause
复制代码

作者: bat.bat    时间: 2016-10-20 08:36

回复 6# GNU
可以是EF盘下所有的txt格式的文件不?
作者: GNU    时间: 2016-10-20 09:47

回复 7# bat.bat


@echo off
cd /d E:\
for /f "tokens=1-3*" %%a in ('dir /s /a-d/tc *.txt ^| find ":"') do echo;%~dp0%%d ^| %%a %%b ^| %%d
cd /d F:\
for /f "tokens=1-3*" %%a in ('dir /s /a-d/tc *.txt ^| find ":"') do echo;%~dp0%%d ^| %%a %%b ^| %%d
pause
作者: bat.bat    时间: 2016-10-20 09:51

本帖最后由 bat.bat 于 2016-10-20 09:52 编辑

回复 8# GNU
十分感谢
作者: Qarclub    时间: 2016-10-20 10:17

回复 4# pcl_test


    大大,来个可拖拽的呗,拖拽文件夹到bat获取所有文件的名称名称以及路径。文件名按1-999排序,万分感谢




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2