1

我需要一个批处理或一些代码来查找文件名中的 2 个字符,然后按字母顺序复制具有最新版本的文件。

因此,对于源文件夹中的文件列表,它将查看第 8 个和第 9 个字符 A1、B1 等并将 ABC0123E1.pdf 复制到目标。

  • ABC0123A1.pdf
  • ABC0123B1.pdf
  • ABC0123C1.pdf
  • ABC0123D1.pdf
  • ABC0123E1.pdf

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

4

2 回答 2

3

只需修改dir命令的选项。
使用该选项/on,您将获得以下输出:

>dir /on /b ABC0123?1.pdf
ABC0123A1.pdf
ABC0123B1.pdf
ABC0123C1.pdf
ABC0123D1.pdf
ABC0123E1.pdf


..和/o-n你得到相反的顺序:

>dir /on /b ABC0123?1.pdf
ABC0123E1.pdf
ABC0123D1.pdf
ABC0123C1.pdf
ABC0123B1.pdf
ABC0123A1.pdf

如需帮助,请输入dir /?cmd。


代码是:

for /f "delims=" %%a in ('dir /on /b ABC0123?1.pdf') do set "LatestAlfa=%%~a"
echo %LatestAlfa%
于 2013-10-03T14:00:21.270 回答
1

我的第二个答案将焦点放在第 8 个字符上:

@ECHO OFF &SETLOCAL 
cd test
for /f "tokens=1*" %%x in ('
(for %%a in (*.pdf^) do @(
    set "fname=%%~a"
    ^&call echo %%fname:~7^,1%% %%fname%%^)
^)^|sort /r') do echo %%~y
于 2013-10-04T20:06:59.453 回答