Batch file 批处理文件、移动和重命名

Batch file 批处理文件、移动和重命名,batch-file,command-line,cmd,Batch File,Command Line,Cmd,我的桌面上有一个包含五个子文件夹的文件夹,每个子文件夹包含大约1000个Pdf文件。它们都有一个6位数的名称(例如567788.pdf) 我想将所有文件复制到另一个文件夹,如果它们具有相同的名称,我希望它在名称中添加一些内容,而不是覆盖该文件(如果是重复的) e、 g 567788.pdf->567788(1).pdf 是否可以使用批处理文件执行此操作?例如,请尝试以下操作: find old_dir -type f |while read f ; do old_name=`basename $

我的桌面上有一个包含五个子文件夹的文件夹,每个子文件夹包含大约1000个Pdf文件。它们都有一个6位数的名称(例如567788.pdf)

我想将所有文件复制到另一个文件夹,如果它们具有相同的名称,我希望它在名称中添加一些内容,而不是覆盖该文件(如果是重复的)

e、 g 567788.pdf->567788(1).pdf


是否可以使用批处理文件执行此操作?

例如,请尝试以下操作:

find old_dir -type f |while read f ; do old_name=`basename $f`; if [ ! -e new_dir/$old_name ] ; then cp $f new_dir ; else i=1 ; while true ; do new_name="$old_name ($i)" ; if [ ! -e new_dir/$new_name ] ; then cp $f new_dir/$new_name ; break ; else i=`expr $i + 1` fi; done; fi; done

重复的文件名将接收后缀(1)、(2)等。

例如,请尝试以下操作:

find old_dir -type f |while read f ; do old_name=`basename $f`; if [ ! -e new_dir/$old_name ] ; then cp $f new_dir ; else i=1 ; while true ; do new_name="$old_name ($i)" ; if [ ! -e new_dir/$new_name ] ; then cp $f new_dir/$new_name ; break ; else i=`expr $i + 1` fi; done; fi; done

重复的文件名将接收后缀(1)、(2)等。

是的,这是可行的。您应该使用
FOR
命令在源目录中循环。如果存在,请使用
检查是否存在。添加一个
(1)
后缀以避免冲突(使用
SET/?
了解参数子项)。堆栈溢出社区不应该为您编写这样的脚本。一旦遇到绊脚石,自己尝试并报告问题。是的,这是可行的。您应该使用
FOR
命令在源目录中循环。如果存在,请使用
检查是否存在。添加一个
(1)
后缀以避免冲突(使用
SET/?
了解参数子项)。堆栈溢出社区不应该为您编写这样的脚本。一旦遇到绊脚石,自己尝试并报告问题。是的,这是可行的。您应该使用
FOR
命令在源目录中循环。如果存在,请使用
检查是否存在。添加一个
(1)
后缀以避免冲突(使用
SET/?
了解参数子项)。堆栈溢出社区不应该为您编写这样的脚本。一旦遇到绊脚石,自己尝试一下,并报告问题。