使用 msbuild 删除空目录

2023-11-27

如何递归处理路径,以便处理完成后路径下不存在空目录。

例如,假设我们有C:\Dir1\Dir2\Dir3并且这些目录中都没有文件。结果应该是删除所有三个目录。

我想在不使用自定义任务的情况下完成此任务。


像这样的东西应该可以工作,但没有检查计算数千个文件的性能,尽管只是为了获取数组长度......

<Project DefaultTargets="Foo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Foo">
        <ItemGroup>
            <Directories Include="$([System.IO.Directory]::GetDirectories('D:\foo', '*', System.IO.SearchOption.AllDirectories))" />
            <Directories>
                <Files>$([System.IO.Directory]::GetFiles("%(Directories.Identity)", "*", System.IO.SearchOption.AllDirectories).get_Length())</Files>
            </Directories>
        </ItemGroup>        
        <RemoveDir Directories="@(Directories)" Condition="%(Files)=='0'" />
    </Target>
</Project>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 msbuild 删除空目录 的相关文章

  • 具有依赖项的自定义 MSBuild 任务

    我编写了一个使用第三方程序集的 MSBuild 任务 当我在项目中使用该任务时 MSBuild 抱怨它无法加载第三方程序集 毫不奇怪 我应该将第三方程序集放在哪里 以便 MSBuild 可以使用它们 我尝试向它们添加项目引用但没有成功 我不
  • 在VS2015中构建项目:“csc.exe”退出,代码为-1073741571

    我使用的是Visual studio 2013 昨天 我安装了VS2015 企业更新3 我的解决方案的构建过程在 VS2015 中的一个项目中崩溃了 VS2017 RC 也会出现同样的异常 该解决方案在 VS2013 中成功构建 该解决方案
  • MSBuild 中 ProjectReference 的配置

    是否可以在 MSBuild 中设置 ProjectReference 的配置 设想 我有一个构建脚本 网络部署 它有许多配置 其中唯一的区别与它们的部署方式有关 而不是其自身的构建方式 我不想维护作为部署过程的一部分构建的解决方案 项目的配
  • 如何在 MSBuild 中的 Exec 命令中转义引号

    我正在尝试构建一个 MSBuild 脚本 将网络驱动器映射到脚本中的驱动器号 但不幸的是目标文件夹的路径包含嵌入的空格 嵌入的空格导致映射失败 我不知道是否可以转义路径周围的引号 我尝试过双引号 但 MSBuild 不喜欢它 要么是 Win
  • 构建机器是否需要单独的 Delphi XE4 许可证?

    用于通过以下方式构建应用程序dcc32在构建服务器上我可以使用 Delphi Trial 这种方法的许可证没有任何问题 现在 我将通过以下方式在 TeamCity 上构建 Delphi XE4 应用程序msbuild 我是否需要拥有构建机器
  • MSVC10 /MP 在项目中跨文件夹构建非多核

    我希望有人指出我们所遇到的错误或解决方法 使用 MP 编译项目时 似乎仅同时编译同一文件夹中的文件 我使用进程资源管理器来滑动命令行并确认行为 项目过滤器似乎对同时编译的内容没有影响 项目结构disk Folder project vcxp
  • 压缩未压缩的 MSI 文件

    我们有一个安装项目 它生成一个未压缩的 MSI 文件 并且根本没有 Setup exe 稍后由 NSIS 压缩 在特殊的构建设置中 我想在 NSIS 打包之前复制该 MSI 更改副本并保留它 我还想在 msbuild 创建它之后对其进行压缩
  • 通过命令行的 MSbuild 包不包括我的所有程序集

    我正在尝试设置一个部署脚本来发布我们的网站 而不是必须打开 VS 来进行部署 发布 当我通过 VS 进行发布时 它将正确包含所有引用的程序集 但是当我通过命令行进行发布时 它不会 我对我所缺少的东西感到迷失 我的 MSBuild 命令是 m
  • 从命令行增加 Delphi XE 项目版本号

    我有一个 Delphi XE 项目 我试图在使用 MSBuild 构建它之前更改程序的版本号 版本号信息位于 DPROJ 文件中 但如果我更改这些值 版本号不会更改 我认为原因是当您在 IDE 中更改版本号时 Delphi 会将更改保存到
  • 无法将预编译、合并的 webapp 部署到 Azure

    我正在尝试将 ASP NET Web 应用程序部署到 Azure 它是 Web 表单 MVC 和 WebAPI 的混合体 并且有大量的 aspx ascx 文件 因此它们确实需要预编译 否则每次部署都会使网站运行缓慢一段时间 我正在尝试通过
  • 从 MSBuild 中的文件读取单个值

    我正在尝试从 MSBuild 中的文件读取版本号
  • 在未安装 Qt VS Tools 的情况下以 Qt/MsBuild 格式编译 Qt 项目

    我在 Visual Studio 中有很多 Qt 项目 使用新的 Qt MsBuild 格式 https blog qt io blog 2018 02 16 qt visual studio improving performance 由
  • Visual Studio 2010 解决方案的 MSBuild 命令行执行无法引用 VS2010 SDK 来构建扩展

    Scenario 包含 VS2010 扩展的解决方案 NET 4 类库 带有 WPF UI 它在视觉工作室内部构建得很好 On the 同一台机器当我尝试通过命令行构建它时 作为构建脚本的一部分 Fails when using this
  • 使用 MSBuild Web 部署到服务器

    我在 VS 2012 项目中设置了发布配置文件 当我在 VS 中右键单击该项目 选择 发布 并单击 发布 按钮时 它会使用 发布配置文件 中提供的设置将项目发布到服务器 当我使用 msbuild 和命令行时 使用以下语法 msbuild e
  • MSBuild 将动态生成的文件复制为项目依赖项的一部分

    我有一个自定义 msbuild 任务 它正在生成一些输出文件到 ProjectA 的输出目录 TargetDir 当前的代码是这样的
  • TFS Build 未按预期转换 web.config

    目标是让 TFS 构建和部署 2 个以上不同的配置 并让 web config 转换文件在其输出中包含预期内容 这是一个 ASP NET MVC 项目 Web 调试 配置 参见 PasteBin http pastebin com 9Zwb
  • Visual Studio Team Services 持续集成:NuGet 恢复任务失败

    我正在使用 Team Services 中的持续集成功能 以前是 Visual Studio Online 我的构建定义针对解决方案 而不是整个解决方案 中的特定项目 即 ClientUI MVC 网站 该解决方案包含三个项目 Client
  • MSBuild 复制或创建文件(如果不存在)

    我有一个简单的要求 即在项目目录中创建一个名为 user config 的文件 但前提是该文件尚不存在 第一次尝试
  • 在构建服务器上安装 F# 4.1 SDK

    我已在 PC 上安装了支持 F 的 Visual Studio 2017 并且 MSBuild 目标位于C Program Files x86 Microsoft Visual Studio 2017 Enterprise MSBuild
  • pubxml Web 发布工具事件生命周期

    我正在使用 Visual Studio 2012 中的 Web 发布工具发布到文件系统 我了解到我可以打开 Properties 文件夹中的 pubxml 来执行更高级的操作 我想要做的是在发布任务结束时运行命令行应用程序 我通常会在自定义

随机推荐

  • 长ID的性能

    我想知道这个问题已经有一段时间了 在 CouchDB 中 我们有一些相当日志的 ID 例如 000ab56cb24aef9b817ac98d55695c6a 现在 如果我们正在搜索该项目并浏览由视图创建的树结构 看起来一个简单的整数作为 i
  • 为什么派生类不能在此代码中调用受保护的成员函数?

    include
  • 线程和文件写入

    我有一个使用 20 个线程的 java 程序 他们每个人都将结果写入一个名为output txt 我总是得到不同数量的行output txt 会不会是线程同步的问题 有办法处理这个问题吗 难道是线程同步的问题 Yes 有办法处理这个吗 是的
  • 如何构建使用 CMake FetchContent 下载的外部库?

    我有一个依赖于外部库 例如 SDL 的程序 我希望 CMake 为我处理这种依赖性 所以我正在研究FetchContent 据我了解 该模块只是下载源代码 以便可以在以下位置获得有关外部库的信息配置时间 例如 include FetchCo
  • SVN:发布分支和外部?

    我们有两个针对同一客户的网站 主 www 网站和另一个位于单独服务器上的电子商务网站 它们使用共享的代码部分 各种功能 样式 javascript 等 目前 我们通过将共享代码作为 SVN 中的单独项目 在同一存储库中 并使用 svn ex
  • Python3中如何设置文件权限?

    Python 自己的文档非常简洁地介绍了如何使用类似的函数os fchmod os chmod 我对这样的数字感到困惑777和类似的表达方式stat S IWRITE stat S IEXEC 是什么mode 0o777我在一些函数中看到o
  • 首先在 EF 4.1 代码中映射关联表

    我不确定如何映射下面的表格EF 4 1 code first以及我需要哪些对象来代表表格 我如何检索产品规格列表 我目前只有一个Product class Products Table Id Name IsActive ProductSpe
  • 如何正确配置 Cocoa Pods 项目?

    在我过去的一些项目中 Cocoa Pods 的配置不正确 这会导致一些不良情况 例如项目导航器中需要重复的 Cocoa Pod 项目 或者必须将 pod 文件签入版本控制 如何正确安装 Cocoa Pods 并验证我的目录结构和项目导航器结
  • 如何使用 API Gateway 调用 AWS Step Function

    如何使用 API Gateway POST 请求以及 Step Function 的请求 JSON 负载调用 AWS Step Function 1 创建阶跃函数 非常明显 我想如果您正在阅读本文 您就知道该怎么做 否则 您可以查看此处的文
  • 使用 LINQ 生成填充随机数的随机大小集合

    我现在正在学习 LINQ 我想知道是否有任何方法可以使用它来实际生成列表 而不仅仅是查询已经生成的列表 所以我有以下代码 使用 for 循环来生成随机大小的整数列表并用随机数填充它 有没有办法将其转换为 LINQ var ret new L
  • 当另一个表中存在匹配行时更新行

    仅当另一个表中存在匹配行时 对于主表中该列当前为空的所有行 我才需要将表上的字段更新为 true 这是我想要实现的目标的描述 UPDATE LenqReloaded dbo Enquiry A SET ResponseLetterSent
  • 限制 .net 应用程序的内存使用

    有没有办法限制 NET 应用程序使用的内存量 看看进程调控器 http lowleveldesign wordpress com 2013 11 21 set process memory limit with process govern
  • 如何在NumericUpDown控件中显示空值?

    我有一个 Windows 窗体应用程序 其中包括NumericUpDown控制与Minimum and Maximum相应地将值设置为 50 80 并执行步骤 1 当表单加载时NumericUpDown显示 50 我知道NumericUpD
  • r - 将输出从 sf::st_within 转换为向量

    我尝试使用 R 中的 sf 包来查看 sf 对象是否在另一个 sf 对象内st within功能 我的问题是这个函数的输出是稀疏几何二进制谓词 sgbp我需要一个向量作为输出 以便我可以使用dplyr之后打包进行过滤 这是一个简化的示例 o
  • VS2017 具有新的 getter/setter 语法:如何在 setter 中编写多行?/ [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我使用的是 NET Framework 4 5 2 VS2017 VS2017 为 getter 和 setter 提供了新的语法 现在带有 getter setter 的属性如下所示
  • 提交成功但上传无法在合并表单中使用

    在尝试将提交和上传合 并到一种表单中时 我在上传时遇到问题 但对于提交表单来说没有问题 jQuery Ajax oqcsubmit click function if oqc valid var params oqc serialize a
  • 如何在 R Markdown 中选择特定选项卡?

    我需要从中选择一个选项卡tabset在 R Markdown 文档中 使用 Shiny 运行时 我按照中的例子如何在Shiny中选择特定的tabPanel 并尝试将其适配为 R Markdown 我添加了ids 到选项卡集 选项卡 并在up
  • 对 Python argparse 参数组重新排序

    我在用着argparse我有一个自定义参数组required arguments 有什么方法可以更改帮助消息中参数组的顺序吗 我认为将必需的参数放在可选参数之前更符合逻辑 但没有找到任何文档或问题来提供帮助 例如 改变这个 usage fo
  • 将 csv 文件导入 Python 中的矩阵/数组

    我正在尝试将包含字符串和数字数据矩阵的大 csv 文件导入到 Python 中的数组 矩阵中 在 MATLAB 中 我曾经加载文件并将其简单地分配给一个矩阵 但在 Python 中似乎有点棘手 有人可以建议吗 我对 Python 还很陌生
  • 使用 msbuild 删除空目录

    如何递归处理路径 以便处理完成后路径下不存在空目录 例如 假设我们有C Dir1 Dir2 Dir3并且这些目录中都没有文件 结果应该是删除所有三个目录 我想在不使用自定义任务的情况下完成此任务 像这样的东西应该可以工作 但没有检查计算数千