Batch file 如何在%*参数上批量执行字符串替换?

Batch file 如何在%*参数上批量执行字符串替换?,batch-file,Batch File,我想对批处理文件的参数执行字符串替换。例如,将%~dp0参数从后斜杠替换为前斜杠 我尝试过:%~dp0:\=/和%~dp0:\=/%,两者都不能替换斜杠。我能做的唯一可能的解决方案是混乱: set dir=%~dp0 set dir=%dir:\=/% 有没有更好的方法不用设置单独的变量,最好是一行?简短回答-没有。 字符串操作不适用于已解析的参数(%1)或循环标记(%i)的)。 通常认为,不将解析后的参数保存到命名变量中是不好的做法,原因有两个: 可读性-将参数转换为命名变量将提高您在编写代

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

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

set dir=%~dp0
set dir=%dir:\=/%
有没有更好的方法不用设置单独的变量,最好是一行?

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

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

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

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

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

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