通过目录名移动和重命名文件

通过目录名移动和重命名文件

我想创建一个.bat 文件,将 excel 文件移动到特定目录并将 excel 重命名为其文件夹名称。

更新:

所有这些的想法是,我想将一个名为“fisier general.xls”的文件复制到具有不同名称的多个文件夹中,例如“CITY MALL”文件夹。现在我使用下面的代码,仅复制文件,但我意识到该文件必须与复制 excel 文件的目录完全一致。

copy C:\"Documents and Settings"\rnic\"My Documents"\Razvan\"Rapoarte Aringhe"\"IOAN - Exceptii planograme"\"Fisier general.xls" C:\"Documents and Settings"\rnic\"My Documents"\Razvan\"Rapoarte Aringhe"\"IOAN - Exceptii planograme"\"Mega Image"\"CITY MALL"

也许你可以帮我解决这个问题。fisier general.xls应该将其重命名为CITY MALL.xls

答案1

这个.bat 将遍历以 %def% 开头的文件夹,如果有一个名为 oldname.xlsx 的文件,那么它会将其移动到它找到的第一个子文件夹中。

@echo off

set fn=oldname
set ext=.xlsx
set def=c:\

for /R %def% %%i in (.) do ( 
 if exist "%%~di%%~pi%fn%%ext%" (
  for /D %%d in ("%%~di%%~pi*") do (
        move "%%~di%%~pi%fn%%ext%" "%%d\%%~nd%ext%"
  )
 )
)

答案2

您不需要像当前批处理文件那样使用那么多引号。
此外,您可以在复制命令上重命名文件。

复制“C:\Documents and Settings\rnic\My Documents\Razvan\Rapoarte Aringhe\IOAN - Exceptii planograme\Fisier general.xls” “C:\Documents and Settings\rnic\My Documents\Razvan\Rapoarte Aringhe\IOAN - Exceptii planograme\Mega Image\CITY MALL\CITY HALL.xls”

如果您希望在可以提供文件名的批处理文件中使用此文件,我将使用包含以下内容的批处理文件:

复制“C:\Documents and Settings\rnic\My Documents\Razvan\Rapoarte Aringhe\IOAN - Exceptii planograme\Fisier general.xls” “C:\Documents and Settings\rnic\My Documents\Razvan\Rapoarte Aringhe\IOAN - Exceptii planograme\Mega Image\%~1\%~1.xls”

并使用调用批处理文件MyBatchFile "The Folder Name"

相关内容