BAT脚本:如何从用户传入的参数中去掉引号?(转)

发布时间:2025-03-27 10:17

蟹脚去须:剪掉蟹脚上的细刺,可用吸管或牙签从关节处插入,慢慢抽出。 #生活技巧# #厨房烹饪技巧# #海鲜处理#

最新推荐文章于 2024-05-12 22:24:12 发布

chance_wang 于 2009-12-24 11:31:00 发布

引自中国DOS联盟论坛

  很多情况下,我们需要脱除一个字符串中可能会存在的引号,然后在加上自己的引
号使其中的特殊字符(命令连接符& 、| 、&&、||,命令行参数界定符Space 、tab 、
; 、= ,字符化转义符^ 、" ,变量化转义符% 等)字符化,失去特定的作用,而作为
普通的字符成为字符串的一个组成部分。

  一、将字符串中的引号脱去的简单办法有三种,它们的功能相近,只是各自的使用
场合不同,可以处理大多数的情况。

  1-1 、如果字符串存在于命令行参数%1中,可以使用%~1 脱去第一对外侧引号,如
果没有外侧引号则字符串不变;

  1-2 、如果字符串存在于for 替代变量%%i 中,可以使用%%~i脱去第一对外侧引号,
如果没有外侧引号则字符串不变;

  1-3 、如果字符串存在于环境变量%temp%中,可以使用%temp:"=% 脱去其中所有的
引号,如果没有引号则字符串不变;

  1-4 、以上三种方案在某种程度上可以互相通用,因为它们作为变量的一种类型,
可以通过类似以下的代码或代码片断相互转移:

      1-4-1、for替代变量转命令行参数: call:DeQuote %%i
      1-4-2、环境变量转命令行参数:call:DeQuote %temp%
      1-4-3、命令行参数转for替代变量:for %%i in (%1) do ...
      1-4-4、环境变量转for替代变量:for %%i in (%temp%) do ...
      1-4-5、命令行参数转环境变量:set temp=%1
      1-4-6、for替代变量转环境变量:for ... set temp=%%i

  二、如果字符串的引号分布情况很复杂,或者我们对被脱去引号的位置有特殊要求,
或者字符串中可能出现某些控制字符,则可以将字符串首先通过1-4 中的对应方法转存
至环境变量中,在使用以下方案或其组合进行处理:

  2-1 、可以使用set var=%var:~1%脱去环境变量var 串首的第一个引号,如果串首
不存在引号则第一个字符被脱去;

  2-2 、可以使用set %var:*"=% 脱去环境变量var 串首的第一个引号,如果串首不
存在引号则变量值不变;

  2-3 、可以使用set var=%var:~0,-1% 脱去环境变量var 串尾的最后一个引号,如
果串尾不存在引号则最后一个被脱去;

  2-4 、可以使用set "var=%var%脱去环境变量var 串尾的最后一个引号,如果串尾
不存在引号则环境变量被清空;

  2-5 、可以使用set var=%var:~1,-1% 脱去环境变量var 串最外侧的一对引号,如
果串外侧不存在引号则外侧一对字符被脱去;

  2-6 、可以使用%var:*"=set "var=%脱去环境变量var 串最外侧的一对引号,如果
串外侧不存在引号则出现语法错误;

  2-7 、可以使用set "var=%var:"=%"脱去环境变量var 串中可能出现的所有引号,
如果串外侧不出现引号则变量值不变;与1-3 不同的是,它容许字符串的匹配引号对内
出现特殊控制字符;

网址:BAT脚本:如何从用户传入的参数中去掉引号?(转) https://www.yuejiaxmz.com/news/view/837685

相关内容

深入了解 Bat 脚本:简单而强大的自动化工具——基础版
深入探讨BAT脚本语言:实现自动化操作的利器
AI助力自动化:利用AI生成BAT脚本与Python代码,简化日常生活任务
如何使用BAT(批处理作业)自动化你的日常任务
BAT三家围猎:在线办公从协同走向知识管理平台
linux shell 脚本
哪些挂机脚本工具软件好用?如何制作简单的挂机脚本?
干货|产品经理如何用数据指导优化
一键清除系统垃圾(使用BAT命令轻松清理系统垃圾)
终端设备通过MQTT协议上传到阿里云或华为云上,云上如何创建设备及传输数据

随便看看