我需要从credits.jpg
复制C:\Users\meotimdihia\Desktop\credits.jpg
到D:\Software\destinationfolder and all subfolders
我看了很多,然后写了
/R "D:\Software\destinationfolder" %%I IN (.) DO COPY "C:\Users\meotimdihia\Desktop\credits.jpg" "%%I\credits.jpg"
然后我保存文件saveall.bat但我运行它,它根本不工作。 帮我写一个蝙蝠
答案 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
仅出于完整性考虑。下面的示例将在当前目录的每个文件夹中复制相同的文件,而不复制任何子文件夹。只是删除了/r
选项,使其具有以下功能。
for /d %%I in (*) do xcopy "C:\temp\file.ext" "%%~fsI" /H /K