首页 > 解决方案 > 如何在 %* 参数上批量执行字符串替换?

问题描述

我想对提供给我的批处理文件的参数执行字符串替换。例如,将%~dp0参数从反斜杠替换为正斜杠。

我已经尝试过:%~dp0:\=/%~dp0:\=/%,两者都不替换斜杠。我能做的唯一可能的解决方案是混乱:

set dir=%~dp0
set dir=%dir:\=/%

有没有更好的方法来做到这一点而不设置单独的变量并希望在一行中?

标签: batch-file

解决方案


简短的回答 - 不。

字符串操作不适用于已解析的参数 ( %1) 或for循环标记 ( %%i)。通常认为不将解析的参数保存到命名变量中是不好的做法,原因有两个:

可读性- 将您的参数转换为命名变量将提高您在编写代码后调试和理解代码的能力。

覆盖- 脚本中的任何call:function param1 param2出现都将覆盖该范围内的参数值。


推荐阅读