2011-03-15 52 views
0

我需要包含超過100,000個非嵌套文件的15個文件夾的最後修改日期。這將在Windows Server 2008批處理文件中完成,其中輸出將通過EXEC xp_cmdshell批處理文件DIR只抓取前10個結果?

任何有關如何獲取前5個結果而不花費每個目錄一分鐘的想法?像這樣的情況下,頭部會終止管道並導致目標停止查找?

dir /t:w /o:-d /4 *.jpg | head 

回答

2

這並不能完全消除延遲,但至少它降低到可以忍受的,我想:

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET cnt=0 
FOR /F "tokens=*" IN ('dir /t:w /o:-d /4 *.jpg') DO (
SET /A cnt+=1 
SET "line!cnt!=%%a" 
IF !cnt!==10 GOTO break 
) 
:break 
ECHO %line6% 
ECHO %line7% 
ECHO %line8% 
ECHO %line9% 
ECHO %line10% 
+0

尼斯。我在(答案/ p/t:w/o:-d/4 * .jpg)中做了for/f「skip = 4 tokens = 1」%a在你的答案之前做@echo%a' 。在每個文件夾的dir命令上仍然有1:10分鐘的延遲。你會認爲有某種類型的dir |頭在10行左右後終止。 – 2011-03-15 20:27:03

+0

@Dr。 Zim:(* facepalm *)'skip'!我爲什麼沒有想到它?另一方面,我也試過這個:'dir |對於(1,1,10)中的/ L %% a做set/p line %% 1 =',但是管道輸入似乎不能用於某些原因,即使它在文件中工作正常。 – 2011-03-15 20:36:02