正如問題標題中所指定的,我有以下 DIR 命令來獲取任何目錄中最近修改的檔案,只要該命令或腳本與此命令在要過濾檔案串列的同一目錄中運行。
dir /b /o:-d
但這里的怪癖是我想限制最近修改的檔案串列中的檔案數量,以便我可以在每個檔案上運行 for 回圈。這個串列需要在不使用多個 FOR 回圈的情況下生成,我想不出任何方法來弄清楚。我可以回圈遍歷整個串列,如下所示:
for /F "delims=" %%a in ('dir /b /o:-d') do echo %%a
當最近的 n 個檔案已經列出時,我如何可靠地停止這個回圈?
uj5u.com熱心網友回復:
我建議您可以使用先前的示例并將其修改為接受 6,例如以下您可以通過命令列添加數字,您嘗試進行更改但最好將此版本與 !count 一起使用!而不是嘗試 %%
最新的.cmd
用法: latest 6
@ECHO OFF
setlocal EnableDelayedExpansion
set "j=0"
set "count=%1"
FOR /f "delims=" %%i IN ('dir /b /a-d /o-d *.*') DO (
echo %%i
set /A j=j 1
if !j! geq !count! (
goto :end
)
)
:end
說 6 個檔案的更簡單的版本將是對dbenham 答案的修改
@echo off
set n=0
set count=6
for /f "usebackq delims==" %%F in (`dir /b /a-d /o-d *.*`) do (
echo %%F
set /a "n =1, 1/(%count%-n)" 2>nul || goto :break
)
:break
set n=
set count=
uj5u.com熱心網友回復:
在cmd batch-file.
SET "FILECOUNT=6"
powershell -NoLogo -NoProfile -Command ^
(Get-ChildItem -File ^| Sort-Object -Property LastWriteTime ^| Select-Object -Last %FILECOUNT%).Name
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/402081.html
下一篇:如何找到矩陣中只出現一次的數字?
