将文件复制到所有文件夹批处理文件?

时间:2010-09-02 18:01:02

标签: windows windows-7 batch-file

我需要从credits.jpg复制C:\Users\meotimdihia\Desktop\credits.jpgD:\Software\destinationfolder and all subfolders 我看了很多,然后写了

/R "D:\Software\destinationfolder" %%I IN (.) DO COPY "C:\Users\meotimdihia\Desktop\credits.jpg" "%%I\credits.jpg"

然后我保存文件saveall.bat但我运行它,它根本不工作。 帮我写一个蝙蝠

3 个答案:

答案 0 :(得分:8)

尝试一下:

for /r "D:\Software\destinationfolder" %i in (.) do @copy "C:\Users\meotimdihia\Desktop\credits.jpg" "%i"

当然,如果要进入批处理文件,请加倍'%'。

答案 1 :(得分:1)

如果您可以使用它:以下是PowerShell解决方案(PowerShell集成在Windows 7中,可从XP及以上版本获得):

$file = "C:\...\yourfile.txt"
$dir = "C:\...\YourFolder"

#Store in sub directories
dir $dir -recurse | % {copy $file -destination $_.FullName}
#Store in the directory
copy $file -destination $dir

我很确定最后一行可以集成到dir ...中,但我不确定(我不经常使用PowerShell)。

答案 2 :(得分:0)

这是我在Google上首次搜索到batch file copy file to all subfolders的搜索结果。

这里是xcopy的一种使用方式。 也有robocopy,但这对于像这样的简单任务来说太强大了。 (我已将其用于整个驱动器备份,因为它可以使用多线程


但是,让我们专注于 xcopy

此示例用于保存到扩展名为.bat的文件。如果直接在命令行上运行,只需将附加的%放在其中两个位置即可。

cd "D:\Software\destinationfolder"
for /r /d %%I in (*) do xcopy "C:\temp\file.ext" "%%~fsI" /H /K
  • cd "D:\Software\destinationfolder"将目录更改为要将文件复制到的文件夹。如果路径中有空格,请用引号引起来。
  • for循环-See help here。或在命令提示符下键入for /?
  • /r-遍历文件(递归子文件夹)
  • /d-循环浏览多个文件夹
  • %%I-%%parameter:可替换参数
  • xcopy-在命令行中输入xcopy /?,以获取大量帮助。您可能需要按 Enter 来阅读有关此内容的全部帮助。
  • C:\temp\file.ext-您要复制的文件
  • "%%~fsI"-将%%I扩展为仅包含短名称的完整路径名
  • /H-复制具有隐藏和系统文件属性的文件。默认情况下,xcopy不会复制隐藏文件或系统文件
  • /K-复制文件并保留在目标文件上的只读属性(如果源文件中存在)。默认情况下,xcopy会删除只读属性。

如果您在使用任何只读文件时遇到困难,并且保留了最重要的文件属性,则最后两个参数只是示例。

Lots more xcopy parameters here

xcopy examples here


仅出于完整性考虑。下面的示例将在当前目录的每个文件夹中复制相同的文件,而不复制任何子文件夹。只是删除了/r选项,使其具有以下功能。

for /d %%I in (*) do xcopy "C:\temp\file.ext" "%%~fsI" /H /K