Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Differences between single and double quotes in CMD

I have a powershell file that replaces an IP in a config file. The powershell takes in three parameters:

  1. file name ('C:\Program Files (x86)\app\app.conf')
  2. IP to replace
  3. new IP

Since we are dependent on using a batch file for our service to process the task, I wrote a batch script that simply takes three parameters and posts that to the powershell script.

We use batch file for calling and parsing the parameter: ($ just used to represent variables)

changeip.bat '$filepath' $oldip $newip

This fails, but I don't understand why. I've tried using double quotes instead of single quotes around $filepath and it worked.

How can the whitespace in $filepath be understood by double quotes and not single quotes?

like image 456
Rushabh Dudhe Avatar asked May 10 '26 08:05

Rushabh Dudhe


1 Answers

The short answer is that CMD doesn't treat single quotes as anything but a regular character. It's not a pair/group like double quotes.

The only place where the single quote has any special meaning is in a FOR /F loop, where you are specifying a command to run and iterate over the output.

FOR /F %%d IN ('DIR /S /B C:\Windows') DO @ECHO File: %%d

FOR /F has an option to use backticks instead, in case you need to pass single quotes to the called process, but this is unrelated to your question.

like image 117
mojo Avatar answered May 11 '26 20:05

mojo



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!