简体   繁体   中英

CMD: '■m' is not recognized as an internal or external command

I am trying to get a batch file to work. Whenever I attempt to run a .bat the command line returns '■m' is not recognized... error, where "m" is the first letter of the file. For example:

md c:\\testsource md c:\\testbackup

Returns

C:>"C:\\Users\\Michael\\Dropbox\\Documents\\Research\\Media\\Method Guide\\Program\\test .bat"

C:>■m '■m' is not recognized as an internal or external command, operable program or batch file.

Things I have tried:

  1. Changing Path variables, rebooting, etc.
  2. Changing file directory (ie run from C:)
  3. Running example files from web (like above) to check for syntax errors.

Thanks

What text editor are you writing this in? It seems like your text editor may save the file as UTF-16 encoded text, which cmd.exe can't handle. Try setting the "coding"/"file encoding" to "ANSI" when saving the file.

This results in the first byte being a byte-order-mark (telling other editors how to process the file), and cmd.exe can't deal with this.

In addition to the approved answer I would add the case where is a PowerShell command the one that creates the file... PowerShell comes by default with the UTF-16 encoding.

To solve your problem then, force the file encoding lie this: | out-file foo.txt -encoding utf8 | out-file foo.txt -encoding utf8

Answer based on this other answer .

In windows 10 I had the same issue. Changing the character set to UTF-8 made it worse. It worked correctly when I selected Encoding as UTF-8-NO BOM.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM