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

Windows批处理脚本拖放含^字符文件夹时字符丢失,如何获取原路径?

解决BAT脚本拖放带字符文件夹时路径丢失的问题

问题根源是^在CMD中属于转义字符,拖放带^的文件夹时,系统会自动将路径中的每个^转义为^^,但直接使用%~1会被CMD解析为去掉^的内容,导致路径错误。

修改后的脚本:

@echo off
setlocal enabledelayedexpansion
set "target=%~1"
echo !target!
mkdir USB
xcopy /s radiantUSB USB
move "!target!" USB\
echo "FINISHED"
pause
endlocal

关键说明:

  • setlocal enabledelayedexpansion:开启延迟扩展,让变量在命令执行阶段才解析,避免预处理时转义字符被吃掉。
  • set "target=%~1":将拖放的路径赋值给变量target,此时变量内的^是以转义后的^^形式存在的。
  • 使用!target!调用变量时,延迟扩展会自动把^^还原为原始的^,从而得到正确的文件夹路径。

内容的提问来源于stack exchange,提问作者SScotti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:55:21