1

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

所以在 pusdo 代码中: 获取 C:\edited.config 并复制到 C:\Projects\ /s 找到 original.config 的任何地方

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

所以我猜我需要某种 FOR、重命名和复制或类似的组合

这在 Powershell 中更容易做到吗?

有人可以帮忙吗?谢谢

4

3 回答 3

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)。

于 2009-08-26T23:17:56.427 回答
1

我很惊讶 DOS 批处理文件专家所做的工作。因为我不是他们中的一员,所以我采取了一种对我来说务实的方法。它也可能对你有用。

  1. 获取目标文件夹列表

    C: cd\目录 original.config /s > original.bat

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

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

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

  5. 校对结果以确保它是您想要的。如果您不确定在每行前面放置一个“Echo”以进行试运行。

  6. 运行批处理文件。

于 2009-08-26T23:18:42.043 回答
1
@echo off
C:
cd \Projects
FOR /F "tokens=*" %%G IN ('DIR /B /S original.config') DO xcopy /y c:\edited.config %%G
于 2009-08-26T23:29:39.167 回答