需要你的帮助 我需要创建一个批处理文件(命令提示符) ⁃显示文件夹和子文件夹的列表 ⁃其中是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
答案 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