我有一个带路径的变量,如下所示:
SET "somevar=D:\tree\path\nonsens\oink.txt"
我有一个文件,其中有些想法就是这样写的
VAR=moresonsense
现在我想将morenonsense
替换为D:\tree\path\nonsens\oink.txt
。这应该是结果
VAR=D:\tree\path\nonsens\oink.txt
为此,我使用sed工具进行Windows操作。但是在windows中使用sed会给我以下内容:
VAR=D: ree/path/nonsens/oink.txt
冒号和ree
之间的空格是一个标签。我想,在调用sed之前我可以使用以下行修复它:
SET "somevar=%somevar:\\=\\\\%"
但不,这条线不起作用。所以我有一些问题:
是否有可能阻止sed将\ t更改为标签并防止将两个反斜杠\更改为斜杠/?
是否有另一种简单的方法可以用BATCH替换文件中的另一个字符串?
是否有人知道如何解决此问题?
答案 0 :(得分:2)
你不应该\
- 逃避变量扩展中的\
个实例 ;使用以下内容:
SET "somevar=%somevar:\=\\%"
我不知道这是否能解决您的所有问题,但SET "somevar=%somevar:\\=\\\\%"
肯定无法正常工作,因为它只会匹配两个连续{{1}在输入中使用字符,导致输入无操作。