windows - Windows批处理文件:查找名称中带有空格的最新文件
问题描述
这有效,除非有空间
for /f %%i in ('dir /b/a-d/od/t:c') do set LAST=%%i
如果有空间有办法吗?
解决方案
您需要处理分隔符,因为默认分隔符是 the 和TAB. 因此,我的建议是要么使用所有标记,*
要么最好不使用分隔符。还应该注意的是,行的默认开头EOL
, 是分号 ,;
所以一个健壮的命令将防止以该字符开头的名称也不会从结果中被省略。
使用所有标记,并将行首设置为不能作为文件或目录名称的第一个字符:
For /F "EOL=? Tokens=*" %%I In ('Dir /B /A:-D /O:D /T:C') Do Set "LAST=%%I"
此方法的一个非常小但可能的问题是文件名可以以一个或多个空格字符开头,并且由于这些是默认分隔符,它们将在返回的结果中被消耗和删除。
不使用分隔符并将行首设置为不能作为文件或目录名称的第一个字符:
For /F "EOL=| Delims=" %%I In ('Dir /B /A:-D /O:D /T:C') Do Set "LAST=%%I"
上面的代码示例将LAST
使用每个文件的名称定义变量name,直到所有文件都被迭代,set
每个文件都被迭代并覆盖前一个。如果您在(在这种情况下为当前)目录中有大量文件,您也可以反转您的排序方法(而不是/O:D
use /O:-D
),定义第一个值,然后跳出循环:
For /F "EOL=| Delims=" %%I In ('Dir /B /A:-D /O:-D /T:C') Do (
Set "LAST=%%I"
GoTo Done
)
:Done
推荐阅读
- python - 类型错误:模型()得到了一个意外的关键字参数“batch_size”
- ios - 如何通过电子邮件链接/magic-url 登录以打开 pwa 而不是浏览器来验证 iOS 设备中的用户?
- android-constraintlayout - MATCH_CONSTRAINTS 在动态生成的加权链中不起作用
- python - 我可以在 Python-3 中指定输入变量名称吗?
- reactjs - 为什么 React 在 setState 之后丢弃我的更改?
- c# - 如何在我的 Bing 地图图钉上添加标签?
- r - R:在循环中迭代随机数
- flutter - 颤动如何使用文本字段搜索的结果使容器扩展
- javascript - 如何从 XMLHttpRequest 传入参数?
- sharepoint - 以编程方式修改 SharePoint Online 上文件的时间戳