PowerShell 自定义提供程序RemoveItem

2024-01-10

我正在实施一个自定义电源外壳 http://en.wikipedia.org/wiki/Windows_PowerShell提供者。我现在正在研究remove-item cmdlet 实现。

RemoveItem 方法具有以下签名:

protected override void RemoveItem(string path, bool recurse)

当我输入:Remove-Item .\Myobject -recursePowerShell 基础设施为我提供了价值true in the recurseRemoveItem 方法的参数。

但是,当我输入:Remove-Item .\MyObject' 时,我收到一个问题:

MyObject 中的项目有子项,并且未指定 Recurse 参数。如果你继续, 所有儿童都将与该物品一起被带走。你确定你要继续吗? [Y] 是 [A] 全部是 [N] 否 [L] 全部否 [S] 暂停 [?] 帮助(默认为“Y”):

我想这个问题是由 PowerShell 基础设施向我提出的。这完全没问题,因为我要删除的对象是一个容器。如果我对上述问题的回答是“是”,则 PowerShell 基础结构不会设置递归参数。事实上,当我的RemoveItem方法被调用。我希望参数为 true,因为我对这个问题的回答是“是”。

我的问题是:

  1. 为什么 PowerShell 不将 bool recurse 参数设置为正确的值?

  2. 我是否需要以其他方式获取值(问题的答案)?如何?

  3. 如果上述不可能,有没有办法抑制这个问题?


最终,如果您被要求删除一个容器,那么它本质上是递归的,除非该容器不包含其他容器。我相信 PowerShell 会进行提示,因为该操作的影响超出了用户最初可能意识到的范围(所有容器的内容),并且需要确认。所以在这种情况下,我认为 -recurse 用于告诉 PowerShell“我知道我在做什么”。

-recurse 更有意义的地方是如果你要执行这样的事情:

Remove-Item *.bak -recurse

在这种情况下,您想要递归搜索要删除的文件。不幸的是,Remove-Item 上的 Recurse 参数对于这种用法已损坏 - 来自文档:

因为这里的Recurse参数 cmdlet 有错误,该命令使用 Get-Childitem cmdlet 来获取 所需的文件,并且它使用 管道操作员将它们传递给 删除项目 cmdlet。

所以目前的做法是:

Get-ChildItem . -r *.bak | Remove-Item
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PowerShell 自定义提供程序RemoveItem 的相关文章

  • 如何在一行中输出多个变量

    我试图确定 CSV 中的用户是否处于活动状态 此外 我想知道它们是否是服务帐户 用户帐户或基于 OU 的计算机帐户 一切都在膨胀 直到我尝试输出它 输出分为几行 每个变量一行 我希望输出在一行上 中间有逗号 这样我完成后就会有一个 CSV
  • PowerShell 找不到过载

    我正在尝试使用https sshnet codeplex com https sshnet codeplex com 允许 PowerShell 脚本将文件上传到 SFTP 服务器 一切似乎都有效 除了找不到该方法的重载UploadFile
  • 如何从 powershell 中设置 bash 的环境变量?

    使用powershell我该如何设置 https askubuntu com q 1205227 45156 the 环境 https stackoverflow com q 5327495 262852变量 这里 特别 https sta
  • 正确配置JDK环境变量后仍然找不到java命令

    我在 Windows 虚拟机启动时安装 JDK 使用 cloudinit 用户数据将 PowerShell 脚本传输到 Windows 计算机 然后运行该脚本来安装 JDK softwares Get ItemProperty HKLM S
  • 一行 PowerShell 脚本

    我创建了这个基本的单行 PowerShell 脚本 如果我运行以下命令 该脚本就会执行adAD 的 cmdlet 然后是查询的其余部分 但是尝试将它们一起运行时 它似乎只加载了 cmdlet 而没有执行 cmd 的其余部分 powershe
  • 将 Metro 应用程序固定到任务栏 Windows 10 Powershell

    以下代码将固定 Metro 应用程序以在给定 AUMID 的情况下启动 如果你改变 match Pin To Start 不幸的是 将匹配更改为 固定到任务栏 不起作用 这里发生了什么 function Pin Taskbar param
  • 在远程桌面上使用 Powershell 获取 Windows DisplayLanguage

    我正在尝试通过 powershell 获取 Windows 显示语言设置远程计算机 我尝试了 Get WinUserLanguageList 但这会返回所有语言的列表 Get WinSystemLocale 和 Get Culture 也不
  • PowerShell 模块中忽略 Write-Verbose

    我希望使用Write Verbose脚本和函数中的命令行开关 它在脚本 ps1 文件中按预期工作 但在模块 psm1 文件中则不然 该 commandlet 在模块中被忽略 运行以下脚本 PS gt scaffold ps1 verbose
  • Powershell日期类型无法找到

    我正在尝试使用PowerShell连接virustotal API 代码来自virustotal网站 我得到 无法找到类型 System Security Cryptography ProtectedData 错误信息 代码如下 funct
  • Powershell:复制时自动更改文件属性

    我有一个只读文件的文件夹 当我将这些文件之一复制到测试位置时 我希望能够复制它们而不保留其原始属性 我可以做到这一点 但这很长 copy item srcfilefullname destfilefullname set itemprope
  • [Regex]::Replace() 和 -replace 有什么区别?

    我明白了之间的区别 Replace and replace 但是什么是 replace and Regex Replace 我测试了以下两个代码 但对我来说结果完全相同 我还提到了 PowerShell Cookbook O reilly
  • 将变量传递给 Start-Job

    我必须在这里遗漏一些非常简单的东西 这是一个非常基本的脚本来说明我正在尝试的内容 Computers comp1 comp2 ScriptBlock New Item C Temp C txt Force Foreach C in Comp
  • Import-Csv - 成员已存在问题

    我必须将多个 CSV 文件合并为一个文件 每个 CSV 都有一个标题 其中一列标题是相同的 理想情况下 最终文件 all out csv 必须有一个标头 我运行 PowerShell 代码 Import Csv out 1 result c
  • 在 .Net 中保持 Powershell 运行空间打开

    我正在尝试从 VB Net 中运行一些 PowerShell 代码 如果您知道的话 C 编码器也可能会有所帮助 代码的第一部分 我需要使用密码连接到 na 控制器 并且需要保持连接打开 我还有其他命令需要通过单击按钮来运行 获取文件 显示文
  • PowerShell中有解析TOML文件的模块吗?

    我正在尝试寻找一个TOML https toml ioPowerShell 的文件解析器 我也找不到任何有关它的信息PowerShell 画廊 https www powershellgallery com 或在预安装的 PowerShel
  • 动态参数值取决于另一个动态参数值

    启动前提 非常严格的环境 Windows 7 SP1 Powershell 3 0 使用外部库的可能性有限或不可能 我正在尝试重写之前创建的 bash 工具 这次使用 PowerShell 在 bash 中 我实现了自动完成功能 以使该工具
  • Powershell v2 远程处理和委派

    我在两台机器上安装了 Powershell V2 并在两台机器上运行 Enable PsRemoting 两台机器都是Win 2003 R2 并且都加入了同一个活动目录域 我可以成功地远程运行命令 所以PS远程处理是在本地服务器和远程服务器
  • 在 PowerShell 中显示 Unicode 表情符号

    我想在 PowerShell 中显示像 U 1F4A9 这样的 Unicode 表情符号 我知道这仅在 ISE 控制台内有效 但我不知道如何操作 到目前为止我尝试过的 CharBytes System Text Encoding Unico
  • Chocolatey 无法使用 PowerShell cmdlet

    所以 我开始使用巧克力了 但是 我注意到 cmdlet 不起作用 例如 如果尝试使用 choco 命令执行任何操作 前任 choco install vlc 它工作得很好 但是 如果我尝试使用旧的 cmdlet 前任 Install Pac
  • 如何在没有 user_impersonation OAuth2Permission 的情况下创建新的 Azure 应用程序注册?

    我想知道 Azure 专家中是否有人可以澄清New AzureADApplication https learn microsoft com en us powershell module azuread new azureadapplic

随机推荐

  • 在 MATLAB 中组合两个结构体的有效方法有哪些?

    我想组合两个具有不同字段名称的结构 例如 从以下内容开始 A field1 1 A field2 a B field3 2 B field4 b 我想拥有 C field1 1 C field2 a C field3 2 C field4
  • 如何在 Android 中将音频 raw 转换为 flac

    我用 audoiRecord 类录制音频 现在我想将音频原始文件转换为 flac 格式 我接下来将 raw 文件转换为 wav private void copyWaveFile String inFilename String outFi
  • 即使已启用,也未为 iOS 启用 API

    我已将地点自动完成或地点 API 与地图 Google 登录和 Firebase RealtimeDatabase 集成 但是当我运行该应用程序时 错误提示 操作无法完成 iOS 版 Places API 未启用 请参阅开发人员指南 htt
  • 如何检查android中用户是否清除了缓存?

    我正在开发的应用程序应该知道用户 android 是否已清除缓存或清除数据 以便我注销用户 这个怎么做 如何判断用户是否清除了缓存 Android操作系统可以自行清除应用程序的缓存 无需人工干预 吗 使用 SharedPreferences
  • Android/ListView:加载数据后选择第一项

    EDIT我必须告诉你 我的 ListView 是由 AsyncTask 填充的 当我在 onPostExecute 方法中执行以下操作时 下面的代码工作正常 synchronized mListView if mFeeds null mFe
  • 如何将新数据追加到已有的配置单元表

    如何将记录追加到现有的分区 Hive 表中 例如 我有一个名为 ip country 的现有外部表 数据集是 testdata1 如果数据集增长 比如我第二天的数据集是 testdata1 和 testdata2 那么如何将新数据 即 te
  • 从文件异步加载图像

    我在本地存储中有一个相对图像 我想在不干扰 UI 线程的情况下将其显示给用户 我目前正在使用 UIImage alloc initWithContentsOfFile path 加载图像 任何建议 帮助请 如果您想要做的只是保持 UI 线程
  • 使预处理器跟踪定义的来源

    在一大堆复杂的源代码中 不是这里发明的 是由 Elbonian 代码奴隶拼凑在一起的 可能会出现这样的情况 几位代码在其路径中拥有一些公共头文件的本地副本 由于构建和使用的层数较多保护宏 https gcc gnu org onlinedo
  • PHP。为什么日期对象的月份差异在 12 个月后重置为 0?

    今天是 2015 年 7 月 8 日 当我运行以下命令时它返回0 如果不返回12 日期是12个月前 同样如果 date 2014 06 03 它返回1 难道不是吗13 过去 12 个月内的所有日期均已正确计算 date 2014 07 03
  • wwwroot 之外的 Elmah logPath

    我们正在尝试部署我们的项目 但我们无法让 elmah 在 wwwroot 之外创建 xml 日志 它当前正在记录到 inetpub site wwwroot App Data 因为这是唯一可行的路径 我们希望将其记录到我们的 inetpub
  • Java:使用引用游标作为 OUT 调用存储过程时结果集为空

    我试图从 Java 调用存储过程 但返回的结果始终是false 实际上 它必须返回 100 条记录 连接建立良好 我有一个存储过程 PROCEDURE get records grp1 IN a name TYPE DEFAULT NULL
  • 使用 PHP 将带有换行符的字符串分解为 HTML 段落

    我从 MySQL 数据库获取文本 该文本被分成行 段落 它存储在变量中 post data content 如何使其打印时带有换行符 我当前使用的代码 post data content explode n post data conten
  • 退出 Putty 后如何保持 Spring Boot 应用程序处于活动状态

    我正在通过命令使用 putty 在我的服务器上运行我的 spring boot 应用程序 mvn spring boot run 仅当我打开 ssh 会话时才运行 断开会话后是否可以使应用程序保持活动状态 或者我是否必须制作可执行的 war
  • g++ 编译另一个目录中存在的源文件

    我正在尝试使用 makefile 为我正在开发的 C 插件设置构建过程 我很好奇是否有任何方法可以让 g 编译source在另一个目录中找到的文件 我这样做的动机是避免为每个源文件指定相对路径 正如我在下面解释的那样 我的项目目录结构如下
  • wpf 工具提示 - 设置跨应用程序的持续时间

    我可以在单个控制工具提示上设置属性 例如持续时间 但我需要的是为整个应用程序中的所有工具提示设置更长的持续时间 所有窗口 所有用户控件等 有没有任何干净的方法来实现它 谢谢 您可以覆盖元数据ToolTipService ShowDurati
  • 为什么我不能将 python 的 print 分配给变量?

    我正在学习编程 并使用 Python 开始 在那里 我发现我可以做这样的事情 gt gt gt gt def myFunction return 1 gt gt gt gt test myFunction gt gt gt gt test
  • 通过 Python 在 Excel 中创建切片器对象

    我正在尝试使用 python 中的 XLwings 包在 Excel 工作表中重新创建一些 tableau 功能 具体来说 我编写了一个脚本 用于处理来自 SQl Server 的数据并执行一些聚合 统计函数 其输出是 pandas 数据帧
  • 将字符串转换为自定义日期格式 - C# razor

    我有一个存储事件的 mySQL 数据库 并且这些事件都有日期 我正在提取事件日期 它们以字符串形式在 HTML 中输出 ul IEntity latestEvents ViewBag LatestEvents foreach IEntity
  • Python Selenium 单击可见元素

    使用 Python Selenium 我试图检查一个元素是否可见 然后单击它 如果是 Check to see if element is visible myelement driver find element by xpath a i
  • PowerShell 自定义提供程序RemoveItem

    我正在实施一个自定义电源外壳 http en wikipedia org wiki Windows PowerShell提供者 我现在正在研究remove item cmdlet 实现 RemoveItem 方法具有以下签名 protect