batch-file - 获取最后修改的文件
问题描述
我正在做一个批处理文件,我想将最后一个文件复制到目录中。在这种情况下,一个.cmd
总是生成一个新文件的文件。
我做的第一个尝试是使用这个/T:W
东西,它工作得很好;当文件名使用两个(或更多)数字时,就会出现问题。
for /f %%x in ('dir C:\foldercmd\*.cmd /B /T:W ') do set "cmdFile=%%x"
所以我得到的输出是:
C:\Users\foldercmd>set "cmdFile=cmdWork_1.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_10.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_11.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_12.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_2.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_3.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_4.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_5.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_6.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_7.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_8.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_9.cmd"
我想得到:
C:\Users\foldercmd>set "cmdFile=cmdWork_1.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_2.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_3.cmd"
[...]
C:\Users\foldercmd>set "cmdFile=cmdWork_11.cmd"
C:\Users\foldercmd>set "cmdFile=cmdWork_12.cmd"
解决方案
我将纯粹通过标题来回答这个问题。获取最后修改的文件
@echo off
for /f "delims=" %%i in ('dir "C:\foldercmd\*.cmd" /b /a-d /o-d') do set "cmdfile=%%i" & goto :end
:end
echo %cmdfile%
这将按顺序对文件*.cmd
进行排序,首先是最新文件,然后仅将第一个文件设置为最新文件并回显它。将新.cmd
文件添加到该目录后,它将选择新文件..就这么简单。
推荐阅读
- database - Postgres PL/Python Initializing record functions
- php - Wordpress,如何更改帖子标题以显示帖子类别?
- jquery - Public method in jquery plugin not working
- r - 在 R 中抓取多个页面
- php - 在 PHP 中调试/记录到云
- netcdf - 在基于选择时间段附加两个 netcdf 文件时需要帮助
- javascript - 自动对焦 Ionic 3 AlertController 输入
- php - Trying to center contents via PHP
- javascript - Cloud Functions - View all properties of data() object?
- node.js - spotify-web-api-node WebapiError