我有一个特定于我的机器的配置文件的编辑版本。 我在我的开发文件夹中的多个不同目录中有相同的配置文件。 我想在一个bat文件中用我编辑过的文件替换这个文件的所有实例。
所以在pusedo代码中: 取C:\ edited.config并复制到C:\ Projects \ / s,无论在哪里找到original.config
我希望最终文件的名称为original.config,而不是edited.config
所以我猜我需要一些FOR,重命名和副本的组合或类似的东西
在Powershell中更容易做到吗?
任何人都可以帮忙吗? 感谢
答案 0 :(得分:3)
我稍后在http://jamesewelch.com/2008/05/01/how-to-write-a-dos-batch-file-to-loop-through-files/
写了一篇关于此的博客我认为您的解决方案看起来类似于(下面是未经测试但用于显示一般想法)
for /f %%a IN ('dir /b *.config') do copy c:\master.config %%a
副本上可能有一个开关来抑制文件覆盖警告,但我不记得开关是什么。这将复制您的master.config并覆盖您的本地文件(变量%% a)。
答案 1 :(得分:1)
我惊讶于DOS批处理文件专家的工作。由于我不是其中之一,我采取的方法对我来说很实用。它也可能适合你。
获取目标文件夹列表
C: 光盘\ Dir original.config / s> original.bat
在您喜欢的文本编辑器中编辑original.bat(我喜欢Notepad ++)
搜索“original.config”并替换为“”(空字符串)
在每行的前面插入文本“Xcopy C:\ edited.config”
证明 - 读取结果以确保它是您想要的。如果您不确定在每条线的前面放置一个“Echo”以进行干运行。
运行批处理文件。
答案 2 :(得分:1)
@echo off
C:
cd \Projects
FOR /F "tokens=*" %%G IN ('DIR /B /S original.config') DO xcopy /y c:\edited.config %%G