2016-08-26 8 views
1

私はかなり興味深いdelimaを持っています。私はディレクトリ内の最新の7つのファイルを見つけようとしています。コマンドプロンプトからちょうどdir /o-d /a-d /b|find /n /v ""を実行すると、最上位に最新の7個のファイルが返されますが、バッチファイル内のforループ内で実行すると、それは実行されません。彼らは順不同です。私が使用しているコードは次のとおりです。私は、最新の7つのファイルを取得するfor /lループと番号を使用するつもりですが、私は把握するまで、私はなぜこれが起こっていることはできませんDirがforループで最新のファイルを返さない

@echo off 
setlocal 

cd /d %~dp0 

for /f "tokens=*" %%a in ('dir /o-n /b /a-d^|find /n /v ""') do (
    echo %%a 
) 

。違いを示すファイルは次のとおりです。

F:\Scripts\Batch\Test\Check7>dir /o-d /a-d |find /n /v "" 
[1] Volume in drive F is home 
[2] Volume Serial Number is 0101-23B6 
[3] 
[4] Directory of F:\Scripts\Batch\Test\Check7 
[5] 
[6]08/26/2016 09:58 AM    256 Check7.cmd 
[7]08/25/2016 05:48 PM    544 RexxTable.txt 
[8]08/25/2016 05:48 PM   115,668 FCSBalanceFile.txt 
[9]08/25/2016 05:48 PM   33,051 FCSFlatFile.txt 
[10]08/25/2016 05:48 PM   1,475,304 ITF_MT_Deloitte_CRR.txt 
[11]08/25/2016 05:48 PM    92 ITF_LOB_Strike.txt 
[12]08/25/2016 05:48 PM   387,673 ITF_LOB_Daily.txt 
[13]08/25/2016 05:48 PM   20,944 DDAFlatFile.txt 
[14]08/24/2016 05:46 PM   115,668 FCSBalanceFile-08252016.txt 
[15]08/24/2016 05:46 PM   22,894 FCSFlatFile-08252016.txt 
[16]08/24/2016 05:46 PM   19,448 DDAFlatFile-08252016.txt 
[17]08/23/2016 05:49 PM   115,668 FCSBalanceFile-08242016.txt 
[18]08/23/2016 05:49 PM   31,730 FCSFlatFile-08242016.txt 
[19]08/23/2016 05:48 PM   22,440 DDAFlatFile-08242016.txt 
[20]08/22/2016 05:50 PM   115,560 FCSBalanceFile-08232016.txt 
[21]08/22/2016 05:50 PM   38,748 FCSFlatFile-08232016.txt 
[22]08/22/2016 05:49 PM   31,042 DDAFlatFile-08232016.txt 
[23]08/19/2016 05:48 PM   115,560 FCSBalanceFile-08222016.txt 
[24]08/19/2016 05:48 PM   22,242 FCSFlatFile-08222016.txt 
[25]08/19/2016 05:48 PM   18,326 DDAFlatFile-08222016.txt 
[26]08/18/2016 05:49 PM   115,560 FCSBalanceFile-08192016.txt 
[27]08/18/2016 05:49 PM   34,588 FCSFlatFile-08192016.txt 
[28]08/18/2016 05:48 PM   20,196 DDAFlatFile-08192016.txt 
[29]08/17/2016 05:49 PM   115,560 FCSBalanceFile-08182016.txt 
[30]08/17/2016 05:49 PM   22,507 FCSFlatFile-08182016.txt 
[31]08/17/2016 05:49 PM   19,448 DDAFlatFile-08182016.txt 
[32]08/16/2016 05:49 PM   115,452 FCSBalanceFile-08172016.txt 
[33]08/16/2016 05:49 PM   30,712 FCSFlatFile-08172016.txt 
[34]08/16/2016 05:49 PM   26,180 DDAFlatFile-08172016.txt 

F:\Scripts\Batch\Test\Check7>Check7.cmd 
[1] Volume in drive F is home 
[2] Volume Serial Number is 0101-23B6 
[3] 
[4] Directory of F:\Scripts\Batch\Test\Check7 
[5] 
[6]08/25/2016 05:48 PM    544 RexxTable.txt 
[7]08/25/2016 05:48 PM   1,475,304 ITF_MT_Deloitte_CRR.txt 
[8]08/25/2016 05:48 PM    92 ITF_LOB_Strike.txt 
[9]08/25/2016 05:48 PM   387,673 ITF_LOB_Daily.txt 
[10]08/24/2016 05:46 PM   22,894 FCSFlatFile-08252016.txt 
[11]08/23/2016 05:49 PM   31,730 FCSFlatFile-08242016.txt 
[12]08/22/2016 05:50 PM   38,748 FCSFlatFile-08232016.txt 
[13]08/19/2016 05:48 PM   22,242 FCSFlatFile-08222016.txt 
[14]08/18/2016 05:49 PM   34,588 FCSFlatFile-08192016.txt 
[15]08/17/2016 05:49 PM   22,507 FCSFlatFile-08182016.txt 
[16]08/16/2016 05:49 PM   30,712 FCSFlatFile-08172016.txt 
[17]08/25/2016 05:48 PM   33,051 FCSFlatFile.txt 
[18]08/24/2016 05:46 PM   115,668 FCSBalanceFile-08252016.txt 
[19]08/23/2016 05:49 PM   115,668 FCSBalanceFile-08242016.txt 
[20]08/22/2016 05:50 PM   115,560 FCSBalanceFile-08232016.txt 
[21]08/19/2016 05:48 PM   115,560 FCSBalanceFile-08222016.txt 
[22]08/18/2016 05:49 PM   115,560 FCSBalanceFile-08192016.txt 
[23]08/17/2016 05:49 PM   115,560 FCSBalanceFile-08182016.txt 
[24]08/16/2016 05:49 PM   115,452 FCSBalanceFile-08172016.txt 
[25]08/25/2016 05:48 PM   115,668 FCSBalanceFile.txt 
[26]08/24/2016 05:46 PM   19,448 DDAFlatFile-08252016.txt 
[27]08/23/2016 05:48 PM   22,440 DDAFlatFile-08242016.txt 
[28]08/22/2016 05:49 PM   31,042 DDAFlatFile-08232016.txt 
[29]08/19/2016 05:48 PM   18,326 DDAFlatFile-08222016.txt 
[30]08/18/2016 05:48 PM   20,196 DDAFlatFile-08192016.txt 
[31]08/17/2016 05:49 PM   19,448 DDAFlatFile-08182016.txt 
[32]08/16/2016 05:49 PM   26,180 DDAFlatFile-08172016.txt 
[33]08/25/2016 05:48 PM   20,944 DDAFlatFile.txt 
[34]08/26/2016 09:58 AM    256 Check7.cmd 
+3

バッチファイルの名前は「/ o-n」でソートされますが、手動で入力されたコマンドは日付で行います。 – wOxxOm

+0

@ WoxxOm Lol。ダー。それはid10tエラーでした。それを指摘してくれてありがとう。回答として投稿してください。私はあなたにそれについて信用を与えます。 –

+0

問題は単純なタイプミスであるため、このサイトに何らの価値も追加しないため、質問に答える価値はありません。むしろ閉じておく必要があります(これは私が投票したものです)...どのトピックがトピックであるかについて、このヘルプトピックを参照してください:[ここで私はどのトピックを聞くことができますか?](http://stackoverflow.com/help/ on-topic) – aschipfl

答えて

1

完成したバッチファイルです。

for /f "tokens=1,2 delims=[]" %%a in (
    'dir /o-d /a-d /b^|find /n /v ""') do (
    echo %%~nxtb>>%~n0.txt 
    if %%a geq 7 goto :out 
) 
:out 
関連する問題