Windows Batch中如何在两个变量间加反斜杠拼接成完整路径?
Windows Batch 变量拼接解决方法
问题出在你的原始变量FOLDER_WITH_PATH和BACKUP_FILE本身包含双引号,直接拼接会保留引号,导致出现"E:\Backup\Proj1"\\"version_1.txt"这类错误结果。解决核心是先移除变量中的引号,再完成拼接。
方法一:直接替换拼接
使用Batch的变量替换语法%变量名:"=%移除双引号,再拼接路径和文件名:
rem 拼接后结果不带双引号 set "FULL_BACKUP_FILE=%FOLDER_WITH_PATH:"=%\%BACKUP_FILE:"=%" rem 如果需要结果包含双引号,直接套入引号 set "FULL_BACKUP_FILE="%FOLDER_WITH_PATH:"=%\%BACKUP_FILE:"=%""
方法二:分步处理(更直观)
先将原始变量的引号移除,存入临时变量,再拼接:
rem 移除原始变量的双引号 set "FOLDER_NO_QUOTE=%FOLDER_WITH_PATH:"=%" set "FILE_NO_QUOTE=%BACKUP_FILE:"=%" rem 拼接并添加双引号 set "FULL_BACKUP_FILE="%FOLDER_NO_QUOTE%\%FILE_NO_QUOTE%""
以你的示例测试:
- 原始变量:
FOLDER_WITH_PATH="E:\Backup\Proj1"、BACKUP_FILE="version_1.txt" - 处理后
FULL_BACKUP_FILE的值为:"E:\Backup\Proj1\version_1.txt",完全符合预期。
内容的提问来源于stack exchange,提问作者srh
相关产品推荐
相关产品推荐

