【问题标题】:Create windows script to traverse all subfolders of some folder, and delete a certain folder and all of it's contents if it exists创建windows脚本遍历某个文件夹的所有子文件夹,并删除某个文件夹及其所有内容(如果存在)
【发布时间】:2015-03-05 17:00:16
【问题描述】:

这就是诀窍。假设我想释放一些空间,并在 F:\UnrealProjects 中运行该脚本,该脚本有超过 50-60 个子文件夹,我希望该脚本遍历它的所有子文件夹,检查它是否包含名为 @987654321 的文件夹@ 并删除其中的所有内容,包括它存在的文件夹本身。

我并不懒得手动执行一次,但是当重新打开一些项目时,它们会部分或完全重建自己,这会占用空间,因为我真的不需要在任何时候都完全构建它们。我只需要将它们存档 :) 并且只构建我想要构建的那些。

提前感谢各位(或女士)的任何帮助,非常感谢。 但是,如果有人有更好的想法来重新标记这个问题,我会全神贯注并且非常愿意接受建议。

【问题讨论】:

  • 没什么。我已经尝试手动删除它们,弄清楚结果会是什么苦差事,并考虑是否应该简单地编写一个 C 程序来为我做这件事,通过 VM 运行 bash 脚本,或者尝试询问一些希望彬彬有礼的乐于助人的人向我扔了一个脚本,为我省去了麻烦:) 我也问过 SuperUser 并且那里的问题确实有一个更好的“我知道这不是很酷只是公然寻求帮助/有人制作这个脚本对我来说,但话又说回来,这只是一次性的事情。”在里面。但如果什么都没发生,我会尝试在这个上放一个赏金
  • 赏金无济于事。这是一个编程问题的网站,而不是发布工作的网站。
  • 我试过for /d /r . %%d in (Build,Intermediates,Binaries) do @if exist "%%d" rd /s "%%d",但这并没有做任何有用的事情。我也在尝试其他一些脚本形式(涉及 for() do { } ),但也许有人比我强。

标签: powershell wsh windows-scripting


【解决方案1】:

这样的事情,应该这样做

ls -Recurse -Include Build,Intermediates,Binaries -Attribute Directory | Remove-Item -Force -Recurse

【讨论】:

  • 现在试一试 :) 编辑:我可以以某种方式回显它首先要删除的内容,只是为了仔细检查它不会删除超过应有的内容吗?
  • 对不起,没有。它说ls: unknown option --e。当我将 ls 更改为 dir 时,它只给了我七次 U:\Unreal Projects,最后是 File Not Found。 :(
  • 您可以尝试运行不带remove-item部分的命令,也可以添加-Confirm,它会提示您确认是否要删除
  • 尝试 gci 而不是 ls 你在使用 powershell 吗?你应该从 u:\unreal projects 运行它
  • 看来我不是,我只是在使用命令提示符。对不起,我对这个话题缺乏知识和无知:(但我在简单的命令提示符下,试图找出一个批处理文件解决方案,或者其他一些 Windows 脚本解决方案,甚至不知道什么是“Windows 脚本”。在linux上,它是bash。在windows上,我只是天真地假设它被称为powershell,而实际上它只是cmd.exe
猜你喜欢
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 1970-01-01
  • 2011-09-09
  • 2011-07-03
相关资源
最近更新 更多