【问题标题】:command prompt help, show specific files命令提示帮助,显示特定文件
【发布时间】:2014-04-08 19:32:48
【问题描述】:

需要你的帮助 我需要创建一个批处理文件(命令提示符)来 ⁃ 显示文件夹和子文件夹列表 ⁃ 其中包含 exe 文件 ⁃ 只显示 2 个最新的 exe 文件 ⁃ 显示特定文件夹并非全部

并在txt文件中导出信息

如果有帮助,我正在使用 XP

更新

我有以下命令

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

second 显示时间和日期,但不按最新排序


@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

【问题讨论】:

  • 需要有关该任务的更精确信息。

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


【解决方案1】:
@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 中设置所需的目录名称。我将数据显示为日期/时间全文件名,因为全文件名是可变长度的,而日期和时间是固定的。如果您向我们展示了您期望的格式,可能会更容易 - 节省猜测和修改。


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

【讨论】:

  • 谢谢 Magoo,只有一个问题,它输出最后修改的文件有没有办法扭转这个,显示两个最近(修改)的文件。
【解决方案2】:

使用 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

【讨论】:

  • 太好了,这似乎也可以,但是我似乎无法仅看到文件名和路径的时间和日期
  • 您需要本地时间的日期和时间,还是UTC日期和时间可以?您会看到 Robocopy 以 UTC 日期/时间运行和显示。我稍微修改了上面的代码,以显示信息供您查看。
  • Foxidrive - 干得漂亮,新代码完美运行,谢谢大家的帮助:)
猜你喜欢
  • 2020-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
相关资源
最近更新 更多