-1

我需要一个批处理文件来查看文件并移动一组文件
问题是,它需要比较文件,因为可能有超过 1 组

文件相互对应

集合中BIAK1234
的第一个文件是第二个文件BIPO1234
注意 1234 只是文件编号,将指示它属于哪个集合

所以批处理文件必须找到文件集 -BIAK1234 and BIPO1234并将它们移动到另一个文件

如果BIAK1234不存在则脚本需要结束

但如果有文件:BIAK1234、BIAK12345、BIPO 1234、BIPO12345和BIPO123456

bipo123456 必须保留,直到 BIAK123456 存在,然后它可以被移动

那么如何比较文件

我已经知道如何使批处理文件移动文件以及如何检查文件是否存在我只是不太确定如何比较文件,确定集合并仅移动集合

4

1 回答 1

2

我对你的问题有点挣扎。起初我以为你是从文本文件中获取文件名的。但是你的最后一段让我相信你只是在处理文件夹中的文件。

正如您所说,唯一比较棘手的一点是确定各个集合 ID。解决方案是使用 SET 命令获取子字符串,或者将前缀替换为空。从命令提示符键入set /?以获取更多信息。

在下面的解决方案中,我选择使用搜索和替换方法。

@echo off
setlocal enableDelayedExpansion

set "source=c:\yourSourceFolder"
set "destination=c:\yourDestinationFolder"
set "file1=BIAK"
SET "file2=BIPO"

pushd "%source%"
for %%F in ("%file1%*") do (
  set "setID=%%F"
  set "setID=!setID:%file1%=!"
  if exist "%file2%!setID!" move "%%F","%file2%!setID!" "%destination%"
)
popd
于 2013-09-04T21:51:28.673 回答