Windows 中递归删除时出错

3 windows powershell delete-file

我目前正在卸载一些为大量文件生成数据的软件,.jpg并且.nfo我想删除这些文件。我正在尝试使用 PowerShell 来执行此操作,我尝试过的命令是:

del /S *.jpg
Run Code Online (Sandbox Code Playgroud)

并收到以下结果:

删除项目:找不到接受参数“*.jpg”的位置参数。
在行:1个字符:1
+ del /S *.jpg
+ ~~~~~~~~~~~~
+ CategoryInfo:InvalidArgument:(:) [Remove-Item],ParameterBindingException
+ ExcellentQualifiedErrorId:PositionalParameterNotFound,Microsoft.PowerShell .Commands.RemoveItemCommand

谢谢!

mkl*_*nt0 6

太长了;博士

  • 要么:按原样运行cmd.execmd --% /c命令,在命令前面加上: (
    cmd --% /c del /S *.jpg
    --%停止解析符号),告诉 PowerShell 停止解析剩余参数并按原样传递它们(扩展%<name>%环境变量引用除外) - 请参阅Get-Help about_Parsing

  • 或者:最好使用 PowerShell 的本机Remove-Itemcmdlet
    Remove-Item * -Recurse -Include *.jpg -WhatIf
    请注意,公共参数 -WhatIf如何方便地允许您在提交操作之前预览操作;看Get-Help Remove-Item

    • 注意:从 PSv5.1 开始,Remove-Item和cmdlet在涉及递归操作以及 和 参数时在较小程度上非常挑剔Copy-Item-Move-Item有许多微妙之处。 然而,一般来说,PowerShell 的 cmdlet 比同类的 cmdlet 强大得多,学习如何有效使用它们的任何努力都是值得的 - 尤其是因为您很快就能够在Unix平台上使用 PowerShell 。Get-ChildItem-Include-Exclude
      cmd.exe

cmd.exedel和 等命令dir内置于 PowerShell 中,无法直接从 PowerShellcmd.exe调用;要调用它们,您必须使用显式调用,如上所示。cmd.execmd /c

可能令人困惑的是,PowerShell为其自己的命令 (cmdlet)定义了别名,这些别名以大致等效的对应命令命名。cmd.exe
PowerShell cmdlet 的真实名称非常不同,遵循冗长但非常一致的命名方案(甚至管理PowerShell 本机别名的命名)。

例如,del是 PowerShell cmdlet 的别名Remove-Item

这种别名是一把双刃剑:一方面,它使习惯cmd.exe(批处理编程)的人更容易发现其 PowerShell 对应项;另一方面,它掩盖了PowerShell 的命令行语法完全不同的事实。

要了解键入名称时 PowerShell 实际调用的命令,请使用Get-Command

> Get-Command del

CommandType     Name                                               Version    Source                                                                           
-----------     ----                                               -------    ------                                                                           
Alias           del -> Remove-Item              
Run Code Online (Sandbox Code Playgroud)
  • 要快速概述命令的语法,请使用以下命令调用-?Get-Help
    del /?

  • 如需更广泛的帮助,请使用Get-Help -detailed <cmd>Get-Help -full <cmd>; Get-Help -detailed Get-Help

正如您所看到的,您也可以传递命令的别名形式并使用命令的别名-?形式进行调用。Get-Help