我有一个小批处理文件,它看起来像这样:

.\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/

10-12 20:03