【发布时间】:2018-10-22 19:05:16
【问题描述】:
我正在尝试在字符串(用户在提示输入路径时输入)中搜索尾随引号,如果找到则将其删除。
问题:我有一个 bat 文件,提示用户输入文件名和路径(第一个通常通过拖放完成。)如果用户输入的目标路径用引号括起来,因为它包含空格,我的结果命令将如下所示:compress.exe "c:\source path\"destination.zip"
中间那句多余的引语需要去掉。我找到了很多在 file 中搜索字符串的方法,我在 StackOverflow 上找到了 this post,这似乎适用,但似乎不适用于我的情况。
我在上面的链接路径中尝试了命令,告诉它搜索 \" 而不是 bcd,但代码希望它正在搜索的字符串在执行时已传递给它(作为开关),并且当我尝试修改命令以搜索 srcpath 时,bat 失败。我也试过这个:
if "!srcpath:~-1"=="\"" set srcpath=!srcpath:~0,-1!
这会导致:“命令的语法不正确。”
如何在字符串中搜索尾随引号并修剪它?当要搜索的字符是引号(斜线引号:\")时,我能找到的每种方法似乎都不起作用。
【问题讨论】:
-
如果你知道他们放了一个前导和尾随引号,只需去掉它们。
for /f "useback tokens=*" %%G in ('%srcpath%') do set srcpath=%%~G。然后您的其他命令如下所示:compress.exe "%srcpath%destination.zip" -
不错的壁球手.. 我也想过这个。 ;^) 我展示了我的“hack 方式”,因为它可以用来去除“~”只去除引号的各种东西。
标签: windows batch-file cmd double-quotes