2016-10-12 42 views
2

我有一个文件夹充满了配置文件,名为config#.json,其中#是一个2位数的基数为15的数字。我需要一些方法来选择其中一个文件,并将其名称放在一个变量中
我一直在想这个问题,但我不是一个非常高级的批处理程序员。例如,如果我从第8行获得最后一个条目或其他东西,可能有一种方法是使用dir命令的结果。我可以摆脱名称中的空间,这可能会更容易:批处理:从目录中选择顶级文件

Volume in drive C is Local Disk 
Volume Serial Number is 1A97-93E9 

Directory of C:\Users\hazzj\Google Drive\Home\Stuff\Apache-Server\htdocs\launcher_profiles 

12/10/2016 05:44 PM <DIR>   . 
12/10/2016 05:44 PM <DIR>   .. 
12/10/2016 05:44 PM    707 config 11.json <- this bit here 
12/10/2016 05:44 PM    707 config 12.json 
12/10/2016 05:44 PM    707 config 13.json 
12/10/2016 05:44 PM    707 config 14.json 
12/10/2016 05:44 PM    707 config 15.json 
12/10/2016 05:44 PM    707 config 16.json 
12/10/2016 05:44 PM    707 config 17.json 
12/10/2016 05:44 PM    707 config 18.json 
12/10/2016 05:44 PM    707 config 19.json 
     204 File(s)  144,228 bytes 
      2 Dir(s) 344,802,287,616 bytes free 

任何帮助,我将不胜感激。

+1

[批处理脚本从目录获取第一个文件名]的可能副本(http://stackoverflow.com/questions/11882993/batch-script-to-get-first-filename-from-a-directory) –

回答

1
for /f "delims=" %%a in ('dir /b /a-d "yourdirectoryname" ') do set "filename=%%a" 

是标准的方法来获取文件名 - 如果你想在目录中的最后

加入/o:d修改dir命令找到最后按日期,/o:-d首先按日期, /o:n找到最后一个名字,/o:-n名字 - 还有其他选项 - 请参阅提示中的dir /?

for /f "delims=" %%a in ('dir /b /a-d /o-n "yourdirectoryname" ') do set "filename=%%a" 

(还有其他方法)

1

这可能是最简单的答案。

@echo off 
for /f "delims=" %%a in ('dir /b /a-d /on config*.json') do set lastone=%%a 
echo %lastone% 

基本上,你得到的裸(/b)目录中的文件列表(dir)(/a-d)降序名称顺序(/on),处理命令的输出中的每行for /flastone结束呃,最后一个。

相关问题