嘿伙计们批量编写脚本并且有一个问题 我有一个脚本来查找在给定路径中创建的最新文件夹
@echo off
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /o-d') DO (
SET a=%%i
GOTO :found
)
echo No subfolder found
goto :eof
:found
set audioid=%a%
echo Most recent subfolder: %audioid%
pause
我现在想找到4个最新的文件夹,我不知道如何去做。 谢谢你的帮助
答案 0 :(得分:1)
这是一段可以解决问题的代码。它遍历dir
命令返回的最新文件夹(每行返回一行),遇到第4个文件后停止(如果有超过4个文件夹)。
@echo off
setlocal enableextensions, enabledelayedexpansion
set /a _IDX=0
set /a _MAX_ENTRIES=4
FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /o-d') DO (
echo Most recent subfolder: %%i
set /A _IDX=!_IDX! + 1
if !_IDX! geq !_MAX_ENTRIES! (
goto :eof
)
)
如果您想要不同数量的最新文件夹,只需更改_MAX_ENTRIES
值。
答案 1 :(得分:0)
这是一个示例,首先将4个最新的创建的子文件夹的名称分配给环境变量,然后输出它们。
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "FolderIndex=0"
for /F "delims=" %%I in ('dir /AD-H /B /O-D /T:C 2^>nul') do (
set /A FolderIndex+=1
set "NewestFolder#!FolderIndex!=%%I"
if !FolderIndex! == 4 goto FoundFolders
)
if not %FolderIndex% == 0 goto FoundFolders
echo No subfolder found.
goto EndBatch
:FoundFolders
set NewestFolder#
:EndBatch
endlocal
pause
要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。
dir /?
echo /?
endlocal /?
for /?
if /?
pause /?
set /?
setlocal /?