How to input special character in cmd?

后端 未结 2 2106
一向
一向 2020-12-19 08:46

I have written a c program that retrieves arguments from the command line under Windows. One of the arguments is a regular expression. So I need to retrieve special characte

相关标签:
2条回答
  • 2020-12-19 09:00

    You can generally prefix any character with ^ to turn off its special nature. For example:

    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    
    C:\Documents and Settings\Pax>echo No ^<redirection^> here and can also do ^
    More? multi-line, ^(parentheses^) and ^^ itself
    No <redirection> here and can also do multi-line, (parentheses) and ^ itself
    
    C:\Documents and Settings\Pax>
    

    That's a caret followed by an ENTER after the word do.

    0 讨论(0)
  • 2020-12-19 09:02

    You can put the arguments in quotes:

    myprogram.exe "(this is some text, with special characters.)"
    

    Though I wouldn't assume that parentheses cause problems unless you are using blocks for conditional statements or loops in a batch file. The usual array of characters that are treated specially by the shell and need quoting or escaping are:

    & | > < ^
    

    If you use those in your regular expression, then you need quotes, or escape those characters:

    myprogram "(.*)|[a-f]+"
    myprogram (.*)^|[a-f]+
    

    (^ is the escape character which causes the following character to be not interpreted by the shell but instead used literally)

    0 讨论(0)
提交回复
热议问题