我正在嘗試撰寫一個 Windows 批處理檔案來查找*.CPP目錄中的最新檔案。
要在當前目錄中查找最新的檔案,可以這樣做:
@echo off
for /F "delims=" %%f in ('dir /b /od /a-d "%*" ') do set File=%%f
echo %*\%File%
pause
但它只顯示目錄的最新檔案
在*.CPP目錄中的所有檔案中,我只想關注檔案。
如果不可能,可能是從命令中排除*.TXT,*.BAT和*.EXE檔案的方法DIR,*(因為與我的 cpp 檔案相比,主要是這 3 種檔案總是具有更新的修改日期。
uj5u.com熱心網友回復:
哦,我注意到幾天前我之前的問題中斯蒂芬的一個非常有用的評論:在互聯網搜索引擎而不是 DOS 上搜索 CMD
奇跡我的duckduckgo發現了這個: 獲取具有特定擴展名的目錄中的最新檔案
所以這就是答案!(歸功于莫菲)
FOR /F "eol=| delims=" %%I IN ('DIR *.CPP /A-D /B /O-D /TW 2^>nul') DO (
SET NewestFile=%%I
GOTO FoundFile
)
ECHO No *.CPP file found!
GOTO :EOF
:FoundFile
ECHO Newest *.CPP file is: %NewestFile%
pause
如果有人需要相同的代碼來在目錄中查找其他特定的最新檔案,只需根據您的需要更改三個CPP引數
我只是意識到我需要的資訊不僅是 ECHO 目錄中最近的 CPP 檔案的名稱,還有它的日期,如果我找到怎么做我會在這里更新它,如果這里仍然需要幫助^^ 編輯:好的,感謝這個?很棒的網站?
FOR /F "eol=| delims=" %%I IN ('DIR *.CPP /A-D /B /O-D /TW 2^>nul') DO (
SET NewestFile=%%I
SET NewestFileDate=%%~tI
GOTO FoundFile
)
ECHO No *.CPP file found!
GOTO :EOF
:FoundFile
ECHO Newest *.CPP file is: %NewestFile% %NewestFileDate%
pause
CMD批處理檔案很有趣!!!但是當我們是新手時,要知道如何正確撰寫它們也非常耗時^^
uj5u.com熱心網友回復:
這是在Windows batch-file運行中完成此操作的另一種方法cmd。更改*.txt為*.cpp或任何你喜歡的。如果您在受支持的Windows系統上,則可以使用 PowerShell。
@powershell -NoLogo -NoProfile -Command ^
Get-ChildItem -File -Filter *.txt ^| ^
Sort-Object LastWriteTime -Descending ^| ^
Select-Object -First 1 -Property Name,LastWriteTime ^| ^
ForEach-Object { \"Newest .txt file is $($_.Name) at $($_.LastWriteTime)\" }
示例用法:
21:05:48.58 C:\Users\lit\Documents
C:>\src\t\mostrecentfile.bat
Newest .txt file is developer-onboarding.txt at 09/07/2021 10:34:40
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/407255.html
標籤:
上一篇:根據excel中的另一個求和列
