命令提示符帮助,显示特定文件

时间:2014-04-08 19:32:48

标签: file batch-file for-loop command command-prompt

需要你的帮助 我需要创建一个批处理文件(命令提示符)     ⁃显示文件夹和子文件夹的列表     ⁃其中是exe文件     ⁃仅显示最新的2个exe文件     ⁃不显示特定文件夹

并在txt文件中导出信息

如果有帮助,我会使用XP

更新

我有以下命令

第一个按最近的文件工作和订购,但没有给我时间和日期

秒显示时间和日期,但最近没有排序


@ECHO OFF
setlocal EnableDelayedExpansion
set j=0
Echo Test
echo\
FOR /f "delims=" %%i IN ('dir C:\test\ /o-n-d /b') DO (
    echo %%i
    set /A j=j+1
    if !j! geq 2 (
        goto :end1
    )
)

:end1

@ECHO OFF
setlocal EnableDelayedExpansion
set j=0
echo\
Echo Test
echo\
FOR /f "delims=" %%i IN ('forfiles /p C:\testmove /s  /m *.* /C "cmd /c echo @file @fdate @ftime" ') DO (
    echo %%i
    set /A j=j+1
    if !j! geq 2 (
        goto :end2
    )
)

:end2 

pause

2 个答案:

答案 0 :(得分:0)

@ECHO OFF
SETLOCAL enabledelayedexpansion
SET "sourcedir=U:\sourcedir"
SET "lastdir="
(
 FOR /f "delims=" %%a IN (
  'dir /s /b /a-d "%sourcedir%\*.exe" '
  ) DO (
  IF "%%~dpa" neq "!lastdir!" (
   SET "lastdir=%%~dpa"
   SET /a count=0
   FOR /f "delims=" %%i IN ('dir /s /b /a-d /o:d "%%~dpa\*.exe"') DO IF !count! lss 2 (
    SET /a count+=1
    ECHO %%~ti %%~fi
   )
  )
 )
)>newfile.txt

GOTO :EOF

生成newfile.txt。您需要在sourcedir中设置所需的目录名称。我将数据显示为日期/时间fullfilename,因为fullfilename是可变长度的,而日期和时间是固定的。如果你向我们展示了你期望的格式,那么可能会更容易 - 节省猜测和修改。


要显示最近修改的两个文件,请将.../b /a-d /o:d "%%~...更改为.../b /a-d /o:-d "%%~...(注意-o:之间的d

答案 1 :(得分:0)

使用Robocopy显示当前文件夹树中的两个最新修改的.exe文件 它还显示两个文件的UTC日期和时间。

@echo off
setlocal enabledelayedexpansion
set "folder=%cd%"
set c=0
for /f "tokens=1,2,*" %%a in (
    'robocopy "%folder%" "%folder%" "*.exe" /s /is /nocopy /nc /ns /ts /fp /np /ndl /njh /njs /xjd /r:0 /w:0 /l ^| sort /r '
) do echo "%%a %%b" - "%%c" & set /a c+=1 & if !c! EQU 2 goto :done
:done
pause