如何删除PowerShell所说的文件不存在?

时间:2018-06-14 13:36:37

标签: powershell delete-file

我将我的Google云端硬盘添加到我的OneDrive中,并且其中包含一个包含无效名称的文件(con.mp3)。当我试图删除文件(及其所在的目录)时,我得到了#34;无效的文件句柄"。所以我尝试以管理员身份使用PowerShell删除它。

以下是显示该文件的目录列表,以及Remove-Itemdel的结果。

PS> dir

    Directory: C:\Users\Patrick\OneDrive\Google Drive\CW\CW.15WPM.VeryShortWords


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        1/13/2018  11:49 AM         117069 con.mp3


PS> Remove-Item * -Force
Remove-Item : An object at the specified path C:\Users\Patrick\OneDrive\Google
Drive\CW\CW.15WPM.VeryShortWords\con.mp3 does not exist.
At line:1 char:1
+ Remove-Item * -Force
+ ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Remove-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RemoveItemCommand

PS> del *.*
del : An object at the specified path C:\Users\Patrick\OneDrive\Google Drive\CW\CW.15WPM.VeryShortWords\con.mp3 does
not exist.
At line:1 char:1
+ del *.*
+ ~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Remove-Item], PSArgumentException
    + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.RemoveItemCommand

如何删除此文件,以便删除目录?我尝试将其从Google云端硬盘中删除,但它没有同步到我的计算机上。

2 个答案:

答案 0 :(得分:3)

保留字con不应用作路径/文件名(或部分)。

您必须使用-LiteralPath参数,并最终使用\\?\作为前缀 删除时。

所以试试:

Remove-Item -LiteralPath "\\?\C:\Users\Patrick\OneDrive\Google Drive\CW\CW.15WPM.VeryShortWords\con.mp3" -Force

如果这不起作用,您可以在cmd窗口中尝试:

Del "\\?\C:\Users\Patrick\OneDrive\Google Drive\CW\CW.15WPM.VeryShortWords\con.mp3"

如果这也无济于事,请阅读:
https://support.microsoft.com/en-us/help/320081/you-cannot-delete-a-file-or-a-folder-on-an-ntfs-file-system-volume

答案 1 :(得分:0)

您可以尝试的另一件事是运行以下CMD命令dir/A/X/P,然后对列出的MS-DOS短名称运行del命令。因此,步骤可能是:

  1. 打开cmd.exe(命令提示符)
  2. 更改包含文件cd C:\Users\Patrick\OneDrive\Google Drive\CW\CW.15WPM.VeryShortWords的目录的路径
  3. 运行dir/A/X/P以显示MS-DOS的短名称
  4. 使用del命令的 ms-dos短名称删除文件。

enter image description here