无忧启动论坛

标题: 根据条件去除引号 [打印本页]

作者: yjqd    时间: 2023-10-14 15:09
标题: 根据条件去除引号
批处理:set /p L=拖入要添加的文件:
如果拖入文件后,%L%有引号,就去除引号再引用这个变量;%L%没有引号,就直接引用%L%

命令该如何写呢:
用途之一:
用于wimlib-imagex如下命令:双引号中只能用单引号
wimlib-imagex.exe update boot.wim 1 --command="add '%L%'  '%p%\%k%'"


作者: fzp070    时间: 2023-10-14 15:31
不知道理解的对不对,或许可先将引号去除,试试看。
  1. set /p L=拖入要添加的文件:
  2. set   "L=%L:"=%"
  3. wimlib-imagex.exe update boot.wim 1 --command="add '%L%'  '%p%\%k%'"
复制代码

作者: rbwrbw    时间: 2023-10-14 15:39
认真看帮助,曾经也是很喜欢调bat
作者: rbwrbw    时间: 2023-10-14 15:39
对照实例,认真理解语法
作者: nathan6498    时间: 2023-10-14 15:41
对照实例,认真理解语法
作者: yc2428    时间: 2023-10-14 17:32
谢谢
作者: yyz2191958    时间: 2023-10-14 17:34
yc2428 发表于 2023-10-14 17:32
谢谢

解决了吗?
作者: dos时代菜鸟    时间: 2023-10-14 18:42
本帖最后由 dos时代菜鸟 于 2023-10-14 18:43 编辑
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. set /p L=拖入要添加的文件:
  4. for %%c in (!l!) do (set "l=%%~c")
  5. echo '!l!'
  6. pause
复制代码



作者: yyz2191958    时间: 2023-10-14 18:50
dos时代菜鸟 发表于 2023-10-14 18:42

助人为乐
作者: nathan6498    时间: 2023-10-14 19:39
学习学习
作者: yjqd    时间: 2023-10-14 19:46
fzp070 发表于 2023-10-14 15:31
不知道理解的对不对,或许可先将引号去除,试试看。

谢谢

set "L=%L:"=%"
实现了当有引号就去除引号,没有引号就保持不变的效果

我曾试图用判断语句,但没有引号的会出错

if "%L~-1%"==""" set L=%L:"=%

echo %L%|findstr """&&set L=%L:"=%


作者: dos时代菜鸟    时间: 2023-10-14 21:47
yjqd 发表于 2023-10-14 19:46
谢谢

set "L=%L:"=%"

这个方法也可以,可以事先 给 变量 L 加半个引号,再把所有的 引号都替换掉,也就是了。
作者: nttwqz    时间: 2023-10-14 21:54
dos时代菜鸟 发表于 2023-10-14 18:42

当无引号且路径有空格时就会出错,还是set删除引号法靠谱。
作者: dos时代菜鸟    时间: 2023-10-14 22:05
nttwqz 发表于 2023-10-14 21:54
当无引号且路径有空格时就会出错,还是set删除引号法靠谱。

拖动的话,就没问题。
作者: nttwqz    时间: 2023-10-14 22:18
dos时代菜鸟 发表于 2023-10-14 22:05
拖动的话,就没问题。

拖动会添加双引号,但万一是粘贴的路径呢
作者: dos时代菜鸟    时间: 2023-10-15 10:14
nttwqz 发表于 2023-10-14 22:18
拖动会添加双引号,但万一是粘贴的路径呢

哦,那就不一定行了。
作者: rbwrbw    时间: 2023-10-17 18:50
good
作者: rbwrbw    时间: 2023-10-17 18:50
最好的帮助,是help
作者: rbwrbw    时间: 2023-10-17 18:50
吃透语法
作者: 无犹启动    时间: 2024-2-21 17:24
学习学习
作者: 无犹启动    时间: 2024-2-22 09:47
对照实例,认真理解语法




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3