Quotation without the Closing Mark

Q

What will happen if a quotation is missing the closing mark in a batch parameter? I entered 3 quotation marks (double quotes) in the command line.

✍: FYIcenter.com

A

If a quotation is missing the closing mark in a batch parameter, that parameter will be extended to the end of the line.

Quotations have higher precedence than redirection operators (< and >) and command joining operators (& and |).

So if you have 1, 3, 5, or any odd numbers of double quotes in a command, the last double quote will open a quotation that reaches the end of line.

Count the number of double quotes in a line to make sure it's an even number.

Here are some examples on using quotations without the closing marks:

C:\fyicenter>Parameter-Cleaned.bat \Pro"gram Fi"les\Microsoft" Office
(Parameter-Cleaned.bat)
(\Pro"gram Fi"les\Microsoft" Office) () () () ()
(\Pro"gram Fi"les\Microsoft" Office)
(\Program Files\Microsoft Office)

C:\fyicenter>Parameter-Cleaned.bat \Pro"gram Fi"les\Microsoft" Office > nul
(Parameter-Cleaned.bat)
(\Pro"gram Fi"les\Microsoft" Office > nul) () () () ()
(\Pro"gram Fi"les\Microsoft" Office > nul)
(\Program Files\Microsoft Office )

C:\fyicenter>Parameter-Cleaned.bat \Pro"gram Fi"les\Microsoft" Office & echo Hi
(Parameter-Cleaned.bat)
(\Pro"gram Fi"les\Microsoft" Office & echo Hi) () () () ()
(\Pro"gram Fi"les\Microsoft" Office & echo Hi)
Hi
(\Program Files\Microsoft Office )

Notice that remove quotation mark code did not work correctly with redirection operations and command joining operators.

 

Introduction of Windows Batch File

⇒⇒Windows Batch File Tutorials

2017-12-05, 112👍, 0💬