DOS命令替换<filename> .config </filename>的所有实例

时间:2009-08-26 23:11:32

标签: dos

我有一个特定于我的机器的配置文件的编辑版本。 我在我的开发文件夹中的多个不同目录中有相同的配置文件。 我想在一个bat文件中用我编辑过的文件替换这个文件的所有实例。

所以在pusedo代码中: 取C:\ edited.config并复制到C:\ Projects \ / s,无论在哪里找到original.config

我希望最终文件的名称为original.config,而不是edited.config

所以我猜我需要一些FOR,重命名和副本的组合或类似的东西

在Powershell中更容易做到吗?

任何人都可以帮忙吗? 感谢

3 个答案:

答案 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批处理文件专家的工作。由于我不是其中之一,我采取的方法对我来说很实用。它也可能适合你。

  1. 获取目标文件夹列表

    C: 光盘\ Dir original.config / s&gt; original.bat

  2. 在您喜欢的文本编辑器中编辑original.bat(我喜欢Notepad ++)

  3. 搜索“original.config”并替换为“”(空字符串)

  4. 在每行的前面插入文本“Xcopy C:\ edited.config”

  5. 证明 - 读取结果以确保它是您想要的。如果您不确定在每条线的前面放置一个“Echo”以进行干运行。

  6. 运行批处理文件。

答案 2 :(得分:1)

@echo off
C:
cd \Projects
FOR /F "tokens=*" %%G IN ('DIR /B /S original.config') DO xcopy /y c:\edited.config %%G