批量重命名/复制/删除不起作用?

时间:2009-07-13 18:34:35

标签: batch-file file-io

无论出于何种原因,这都行不通(说'找不到文件'),

set in=c:\myprogram\_save
cd %temp%
ren 1RO.dat "Titanic Moves 1 of 3 Rotterdam.dat"
ren 12RO.img "Titanic Moves 1 of 3 Rotterdam.img"
ren 2HA.dat "Titanic Moves 2 of 3 Hawai.dat"
ren 22HA.img "Titanic Moves 2 of 3 Hawai.img"
ren 3NY.dat "Titanic Moves 3 of 3 NY.dat"
ren 33NY.img "Titanic Moves 3 of 3 NY.img"
copy "Titanic Moves 1 of 3 Rotterdam.dat" "%in%"
copy "Titanic Moves 1 of 3 Rotterdam.img" "%in%"
copy "Titanic Moves 2 of 3 Rotterdam.dat" "%in%"
copy "Titanic Moves 2 of 3 Rotterdam.img" "%in%"
copy "Titanic Moves 3 of 3 Rotterdam.dat" "%in%"
copy "Titanic Moves 3 of 3 Rotterdam.img" "%in%"
del "Titanic Moves 1 of 3 Rotterdam.dat"
del "Titanic Moves 1 of 3 Rotterdam.img"
del "Titanic Moves 2 of 3 Rotterdam.dat"
del "Titanic Moves 2 of 3 Rotterdam.img"
del "Titanic Moves 3 of 3 Rotterdam.dat"
del "Titanic Moves 3 of 3 Rotterdam.img"

这是[helper45 = 7zip commandline executable]之前发生的事情,

ren package.temp package.zip
copy package.zip %temp%
del package.zip
helper45 e "%temp%\package.zip"

'e'是提取命令。

3 个答案:

答案 0 :(得分:1)

我刚注意到一个明显的错误。如果该脚本实际上是您所拥有的,那么错误就在下面。如果不是这样的话,我肯定会因为提供不正确的信息而提出问题。

无论如何,请看下面。

两个鹿特丹档案(1/3):

ren 1RO.dat "Titanic Moves 1 of 3 Rotterdam.dat"
ren 12RO.img "Titanic Moves 1 of 3 Rotterdam.img"

两个Hawai文件(2个中的3个):

ren 2HA.dat "Titanic Moves 2 of 3 Hawai.dat"
ren 22HA.img "Titanic Moves 2 of 3 Hawai.img"

两个NY文件(3个中的3个):

ren 3NY.dat "Titanic Moves 3 of 3 NY.dat"
ren 33NY.img "Titanic Moves 3 of 3 NY.img"

两个鹿特丹档案(1/3):

copy "Titanic Moves 1 of 3 Rotterdam.dat" "%in%"
copy "Titanic Moves 1 of 3 Rotterdam.img" "%in%"

另外两个鹿特丹文件,其中2个为3个 - 但上面的“2个3”文件是夏威夷!

copy "Titanic Moves 2 of 3 Rotterdam.dat" "%in%"
copy "Titanic Moves 2 of 3 Rotterdam.img" "%in%"

还有两个鹿特丹文件,3个中有3个 - 但上面的“3个3”文件是纽约!

copy "Titanic Moves 3 of 3 Rotterdam.dat" "%in%"
copy "Titanic Moves 3 of 3 Rotterdam.img" "%in%"

以下行中出现相同的错误:

del "Titanic Moves 1 of 3 Rotterdam.dat"
del "Titanic Moves 1 of 3 Rotterdam.img"
del "Titanic Moves 2 of 3 Rotterdam.dat"
del "Titanic Moves 2 of 3 Rotterdam.img"
del "Titanic Moves 3 of 3 Rotterdam.dat"
del "Titanic Moves 3 of 3 Rotterdam.img"

如果这没有帮助,请从批处理文件中删除任何“@echo off”,并向我们显示错误的副本和粘贴,它出现的行。

答案 1 :(得分:1)

我怀疑您尝试复制/删除的文件中至少有一个不存在。您可以通过直接查看错误消息(以及从批处理中移除echo off,如果有的话)来查看哪一行给出了该错误。

此外,为什么要按顺序重命名,复制和删除操作?您可以轻松地将它们全部转换为每个文件的一个移动操作:

move 1RO.dat "%in%\Titanic Moves 1 of 3 Rotterdam.dat"
move 12RO.img "%in%\Titanic Moves 1 of 3 Rotterdam.img"
move 2HA.dat "%in%\Titanic Moves 2 of 3 Hawai.dat"
move 22HA.img "%in%\Titanic Moves 2 of 3 Hawai.img"
move 3NY.dat "%in%\Titanic Moves 3 of 3 NY.dat"
move 33NY.img "%in%\Titanic Moves 3 of 3 NY.img"

答案 2 :(得分:0)

我会使用pushd而不是cd,这样如果你从不同的驱动器调用它就可以了。