Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file Dir未在for循环中返回最新文件_Batch File - Fatal编程技术网

Batch file Dir未在for循环中返回最新文件

Batch file Dir未在for循环中返回最新文件,batch-file,Batch File,我有一个相当有趣的delima。我正在目录中查找最新的7个文件。如果我只是在命令提示符下运行dir/o-d/a-d/b | find/n/v”“,它会在顶部返回最新的7个文件,但如果我在批处理文件的for循环中运行它,它不会返回。它们坏了。我使用的代码是: @echo off setlocal cd /d %~dp0 for /f "tokens=*" %%a in ('dir /o-n /b /a-d^|find /n /v ""' ) do ( echo %%a ) 我计划使用

我有一个相当有趣的delima。我正在目录中查找最新的7个文件。如果我只是在命令提示符下运行
dir/o-d/a-d/b | find/n/v”“
,它会在顶部返回最新的7个文件,但如果我在批处理文件的for循环中运行它,它不会返回。它们坏了。我使用的代码是:

@echo off
setlocal

cd /d %~dp0

for /f "tokens=*" %%a in ('dir /o-n /b /a-d^|find /n /v ""' ) do (
    echo %%a
)
我计划使用带有
for/l
循环的数字来获取最新的7个文件,但我无法知道为什么会发生这种情况。以下是显示差异的文件

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

这是完成的批处理文件

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

批处理文件按名称排序:
/o-n
,而手动键入的命令按日期排序。@WoxxOm Lol.Duh。这是一个id10t错误。谢谢你指出这一点。把它作为一个答案,我会给你的信用。因为这个问题是一个简单的打字错误,这个问题不值得回答,因为它没有增加任何价值,这个网站;相反,它应该关闭(这是我投票赞成的)。。。请参阅此帮助主题,了解主题中的问题:您还在批处理文件中使用/B选项,但在命令行中没有使用。命令行实际上只是一个测试。我不确定如何切换
/o-n
,因为我从批处理文件中直接复制了它,但显然是这样做的。我将发布完成的批次,并用它回答我自己的问题。谢谢大家的宝贵意见。