当前位置: 首页 > news >正文

[批处理]_[初级]_[如何删除变量值里的双引号]

场景

  1. 在使用Visual Studio开发本地程序的时,需要在项目属性,生成事件->生成后事件里增加一些资源的打包,复制,删除等操作,那么就需要用到批处理来进行。而传递带空格的路径给外部的批处理文件时就需要双引号引用从而路径能作为一个整体。但是批处理传递参数的时候会把双引号当做值来传给%1参数,这就会造成在外部批处理文件里变量出现以下的重复双引号情况。怎么办?
""C:\Program Files"\Microsoft Office"

说明

  1. 批处理传递参数给外部的批处理文件时,会把双引号和字符串值也传递进去。因此我们需要去掉传参的双引号。

  2. 首先因为听参数%1等不支持双%写法,所以需要把系统参数赋值给一个本地变量,之后再删除这个本地变量里的双引号。

set otherPath_1=%1\Microsoft Office
set rightPath_1=%otherPath_1:"=%
  1. 双引号替换的格式:
%变量名:"=%
@rem 把"赋值为空%otherPath_1:"='%
@rem 把双引号替换为单引号

例子

run.bat

  1. 调用外部的build.bat批处理文件并传入参数。
@echo off
set progDir=C:\Program Files
@echo %progDir%
call build.bat "%progDir%" %progDir%
pause

build.bat

@echo "param_1 is %1"
@echo "param_2 is %2"
@echo "param_3 is %3"set otherPath_1=%1\Microsoft Office
set otherPath_2="%1\Microsoft Office"@echo otherPath_1 is %otherPath_1%
@echo otherPath_2 is %otherPath_2%@rem 不能是系统的参数变量%1...,需要用户变量。
set rightPath_1=%otherPath_1:"=%
@echo "====== rightPath_1 is ======="
@echo %rightPath_1%@rem 把双引号替换为单引号
set rightPath_2=%otherPath_1:"='%
@echo %rightPath_2%

输出

C:\Program Files
"param_1 is "C:\Program Files""
"param_2 is C:\Program"
"param_3 is Files"
otherPath_1 is "C:\Program Files"\Microsoft Office
otherPath_2 is ""C:\Program Files"\Microsoft Office"
"====== rightPath_1 is ======="
C:\Program Files\Microsoft Office
'C:\Program Files'\Microsoft Office

参考

  1. 批处理中的双引号
http://www.lryc.cn/news/218981.html

相关文章:

  • 51单片机电子钟闹钟温度LCD1602液晶显示设计( proteus仿真+程序+原理图+设计报告+讲解视频)
  • 怎样学好java
  • HarmonyOS 数据管理与应用数据持久化(二)
  • Hadoop环境搭建及Demo
  • 更新一下数据集
  • web3之跨链预言机SupraOracles:什么是Supra
  • 关系型数据库 期末复习(未完
  • 【学习笔记】CF1895G Two Characters, Two Colors
  • GZ035 5G组网与运维赛题第10套
  • 基于SSM的教学管理系统(有报告)。Javaee项目。
  • 软件测试工作流程
  • 高级文本编辑软件 UltraEdit mac中文版介绍说明
  • python模块的介绍和导入
  • 基于单片机的智能饮水机系统
  • CSS画圆以及CSS实现动态圆
  • K8S知识点(一)
  • 人工智能师求职面试笔试题及答案汇总
  • 【Windows-软件-FFmpeg】(01)通过CMD运行FFmpeg进行操作,快速上手
  • Spring Data Redis + RabbitMQ - 基于 string 实现缓存、计数功能(同步数据)
  • Facebook Developer 的 HashCode
  • 下载使用 ant design Pro 中遇到的一些问题
  • 「Java开发指南」如何用MyEclipse搭建Spring MVC应用程序?(一)
  • [动态规划] (七) 路径问题:LCR 166.剑指offer 47. 珠宝的最高价值
  • Mysql进阶-SQL优化篇
  • VueI18n中英文切换 vue2.0
  • VUE组件间通信的七种方式
  • 问chatgpt最近生活的困难
  • Flink源码解析八之任务调度和负载均衡
  • 4.3 传送门
  • NLP之Bert介绍和简单示例