我有一个小批处理文件,它看起来像这样:
.\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
哪一个不起作用,因为如您所见,
-
变成了ΓÇô
...谁能告诉我这是为什么以及如何解决? 最佳答案
这是因为–
标记不是-
字符。它们实际上是endashes。这些通常是由Word的automatic en/emdashing引起的。
Powershell足够聪明,可以将Endash转换为“参数”的破折号,而cmd则不是。
要解决此问题,请将–
替换为-
。捕获可在notepad ++中使用的所有其他破折号类型的正则表达式搜索/替换是:[–—‒]
到-
。
关于powershell - 批处理文件未正确读取标志,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33863185/