You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带引号的批处理命令无法移动含特殊字符的文件并删除对应文件夹

带引号的批处理命令无法移动含特殊字符的文件并删除对应文件夹

兄弟,太懂你这种重装Windows后手动整理开始菜单的痛苦了——能折腾出自动化批处理来省时间,绝对是把效率拉满了!不过碰到AMD这个特殊命名的文件夹卡壳,确实挺闹心的。

你说的没错,普通冒号:在NTFS里是禁用的,但AMD安装包偏要整个修饰符字母冒号(꞉),这玩意儿看着跟普通冒号一模一样,但其实是个完全不同的Unicode字符,批处理里就算用引号包裹,有时候还是会因为字符解析的问题掉链子。

给你几个靠谱的解决方案,挨个试试:

  • 用短路径名绕开特殊字符:Windows会给长文件名自动生成8.3格式的短路径,比如你那个AMD文件夹的短路径可能是C:\ProgramData\Microsoft\Windows\Start Menu\Programs\AMDSo~1。想找准确的短路径?打开命令提示符,进到C:\ProgramData\Microsoft\Windows\Start Menu\Programs目录,输入dir /x就能看到每个文件夹对应的短路径了。替换后的命令大概是这样:

    cd "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\AMDSo~1"
    move "AMD Software꞉ Adrenalin Edition.lnk" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System\Settings"
    cd ..
    rmdir /S /Q "AMDSo~1"
    
  • 开启延迟变量扩展来解析特殊路径:有时候把路径存进变量里,用延迟扩展调用,能避开特殊字符的解析问题,试试这段代码:

    @echo off
    setlocal enabledelayedexpansion
    set "amdFolder=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\AMD Software꞉ Adrenalin Edition"
    set "targetFolder=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System\Settings"
    move "!amdFolder!\AMD Software꞉ Adrenalin Edition.lnk" "!targetFolder!"
    rmdir /S /Q "!amdFolder!"
    endlocal
    
  • 用robocopy替代move,对特殊字符支持更友好:robocopy是Windows自带的高级复制/移动工具,处理特殊命名的文件比原生move靠谱多了,用/MOV参数就能移动后删除源文件,然后直接删空文件夹就行:

    robocopy "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\AMD Software꞉ Adrenalin Edition" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System\Settings" "AMD Software꞉ Adrenalin Edition.lnk" /MOV
    rmdir /S /Q "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\AMD Software꞉ Adrenalin Edition"
    

最后提醒一句:记得以管理员身份运行批处理!ProgramData是系统级目录,普通权限可能会碰到权限不足的问题,这也可能是命令失败的隐形原因哦。

备注:内容来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:08:01