如何从命令行删除完全限定文件名超过 259 个字符的文件?

问题描述 投票:0回答:1

我尝试在 Windows 11 Professional 上从命令行删除或重命名文件。我可以使用 Windows 文件资源管理器 删除它,但我也需要从命令行执行此操作:

D:\MyDocsBackup\backup2\Mozilla 2024-03-26 16;10;20 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114\{7cccd5e9-a7aa-4349-a2e9-569baf007272}.final

目录中的

dir
显示:

dir "D:\MyDocsBackup\backup2\Mozilla 2024-03-26 16;10;20 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114"
Volume in drive D is BACKUP  Volume Serial Number is 8E6F-6103

Directory of D:\MyDocsBackup\backup2\Mozilla 2024-03-26 16;10;20 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114
 
08/10/2023  03:10 PM    <DIR>
08/10/2023  03:10 PM    <DIR>
08/10/2023  03:10 PM    1,218 {7cccd5e9-a7aa-4349-a2e9-569baf007272}.final

但我不能

dir
(或
del
rename
)文件本身:

dir "D:\MyDocsBackup\backup2\Mozilla 2024-03-26 16;10;20 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114\{7cccd5e9-a7aa-4349-a2e9-569baf007272}.final"
Volume in drive D is BACKUP  Volume Serial Number is 8E6F-6103

 Directory of D:\MyDocsBackup\backup2\Mozilla 2024-03-26 16;10;20 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114

File Not Found

如果我从文件名中删除

{}
,我就可以将其删除。此外,如果我将文件复制到具有更简单和更短路径的目录,我可以毫无问题地删除它,独立于
{}
或文件名中没有
{}

我做错了什么?

添加注释:

  1. 我的文件名确实有引号。

  2. 我可以删除、目录、重命名,只是不在这个目录中。

  3. 这是来自违规目录的PowerShell(注意长提示)。
    请注意,PowerShell 确实会获取文件名,但随后会告诉您该文件不存在。

    D:\MyDocsBackup\backup2\Mozilla 2024-04-15 21;14;31 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114>powershell.exe Remove-Item *.*
    
    Remove-Item : An object at the specified path D:\MyDocsBackup\backup2\Mozilla 2024-04-15 21;14;31 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++50
    5991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114\{7cccd5e9-a7aa-4349-a2e9-569baf007272}.final does not exist.   
    At line:1 char:1   
    + Remove-Item *.*   
    + ~~~~~~~~~~~~~~~  
        + CategoryInfo          : InvalidArgument: (:) [Remove-Item], PSArgumentException  
        + FullyQualifiedErrorId : 
    Argument,Microsoft.PowerShell.Commands.RemoveItemCommand
    
  4. 我可以使用 Windows 文件资源管理器删除。

batch-file delete-file
1个回答
0
投票

想通了。

这是一个错误的决定:

C:\NtUtil>del "D:\MyDocsBackup\backup2\Mozilla 2024-04-15 21;14;31 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114\{7cccd5e9-a7aa-4349-a2e9-569baf007272}.final"
The system cannot find the path specified.

这是一个很好的呼吁:

C:\NtUtil>del "\\?\D:\MyDocsBackup\backup2\Mozilla 2024-04-15 21;14;31 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114\{7cccd5e9-a7aa-4349-a2e9-569baf007272}.final"
Could Not Find \\?\D:\MyDocsBackup\backup2\Mozilla 2024-04-15 21;14;31 (Full)\Firefox\Profiles\pj0elosu.default-release\storage\default\https+++505991220932649.webpush.freshchat.com^partitionKey=%28https%2Cbid13.com%29\cache\morgue\114\{7cccd5e9-a7aa-4349-a2e9-569baf007272}.final

区别在于文件名开头的

\\?\
。 MAX_PATH = 260。问题中的长路径是265。它与文件和路径中的奇怪字符无关。

谢谢大家的帮助和提示。

© www.soinside.com 2019 - 2024. All rights reserved.