从NAnt迁移到PowerShell。复制/删除替换

时间:2011-12-12 04:59:15

标签: powershell nant

请帮我把它翻译成PowerShell:

<delete>
  <fileset defaultexcludes="false" basedir="${svnRepository}">
    <include name="**/*" />
    <exclude name="**/.svn" />
    <exclude name="**/.svn/**" />
  </fileset>
</delete>

<!-- Copy entire output of successful build into the svn working folder -->
<copy todir="${svnRepository}">
  <fileset defaultexcludes="false" basedir="${binariesFolder}">
    <include name="**/*" />
    <exclude name="**/Bin/*.pdb"/>
    <exclude name="**/Bin/*.xml"/>
  </fileset>
</copy>

PowerShell的

Get-ChildItem -recurse "$svnRepository" | ? {$_.FullName -notmatch '.svn'} | Remove-Item -Recurse

我尝试过编写类似上面的东西,但它并没有排除嵌套foldes中的所有SVN目录,例如,如果我有一个带有嵌套.svn的目录C:\blabla\test,它将忽略C:\blabla\test\.svn\*但是同时它会尝试删除C:\blabla\test本身

1 个答案:

答案 0 :(得分:1)

你确定你必须在这做任何事吗? Get-ChildItem已经不包含.svn.git等隐藏文件夹,只有在您指定-Force参数时才会包含这些文件夹。