扩展此示例:Copying a file to multiple folders in the same directory我想将XML文件复制到同一根文件夹下的多个不同项目目录中,所以我试过这个:
for /d %a in (C:\Root\Output\*\bin\x64\Release) do copy /y C:\Root\OtherProject\MyXml.xml %a\
通配符在我的解决方案目录中是不同的项目名称。
当我运行此命令时,没有错误,但XML没有被复制,所以我的问题是你可以在Windows命令行中使用这样的通配符,或者是否有更好的方法从内部处理这种操作命令提示符?
答案 0 :(得分:1)
将其分开:
FOR /D %1 IN (c:\root\output\*) DO (
COPY /Y c:\root\otherproject\myxml.xml %1\bin\x64\release
)
显然,如果必须包含c:\root\output
的所有子目录(它们都有bin\x64\release
子目录,则此方法有效。)如果不是,则必须包含额外的检查:
FOR /D %1 IN (c:\root\output\*) DO (
IF EXIST "%1\bin\x64\release" (
COPY /Y c:\root\otherproject\myxml.xml "%1\bin\x64\release"
)
)
当然,您可能会觉得这是为了这么简单的任务需要很多代码,那么也许是时候切换到PowerShell了,Get-ChildItem
支持使用您想要的通配符:
Get-ChildItem c:\root\output\*\bin\x64\release `
| ForEach-Object -Process `
{ Copy-Item -Force c:\root\otherproject\myxml.xml $_ }
如果你喜欢简短的语法:
gci c:\root\output\*\bin\x64\release | % { cp -Force c:\root\otherproject\myxml.xml $_ }