我有一个小批处理文件,它看起来像这样:
.\batchisp.exe –device at32uc3b1512 –hardware usb –operation erase f memory flash blankcheck loadbuffer G3Pro_USB.hex program verify start reset 0
如果我在PowerShell中直接运行,整行都很好并且可以正常工作。但是,如果我运行批处理文件,它会运行:
.\batchisp.exe ΓÇôdevice at32uc3b1512 ΓÇôhardware usb ΓÇôoperation erase f memory flash blankcheck loadbuffer G3Pro_USB.hex program verify start reset 0
哪个不起作用,因为正如您所看到的,-
已经变为ΓÇô
了......有人可以告诉我为什么会这样,以及如何解决它?
答案 0 :(得分:4)
这是因为–
标记不是-
个字符。它们实际上是endashes。这些通常是由Word automatic en/emdashing引起的。
Powershell非常聪明,可以将endashes转换为破折号作为"参数",但cmd不是。
要解决此问题,请将–
替换为-
。正则表达式搜索/替换捕获在记事本++中有效的所有替代短划线类型:[–—‒]
到-
。