title: Ask for file version of a list of DLLs
body: <p>In order to ask for the version of a file, the following commandline request can be launched:</p>
  <pre><code>wmic datafile where name=&quot;C:\\Windows\\System32\\msiexec.exe&quot; get Version, Name /Value
  </code></pre>
  <p>The result looks like:</p>
  <pre><code>Name=C:\Windows\System32\msiexec.exe
  Version=5.0.19041.1
  </code></pre>
  <p>I would like to launch this request for all specific DLL files in all subdirectories somewhere on my computer.<br />
  So I started as follows:</p>
  <pre><code>forfiles /S /M specific.dll /C &quot;cmd /c echo @path&quot;
  </code></pre>
  <p>I received the entire list of specific DLL files, mentioned as entire path names, which was exactly what I wanted. Now I would like to combine both approaches and you can guess, this is going wrong:</p>
  <pre><code>forfiles /S /M specific.dll /C &quot;cmd /c wmic datafile where name=&quot;@path&quot; get Version, Name&quot;
  </code></pre>
  <p>I get following results:</p>
  <pre><code>Node - PORT-DDM (this is the name of my computer)
  ERROR:
  Description = Invalid query
  </code></pre>
  <p>You might think &quot;Obviously, you are using double quotes within double quotes&quot;, but replacing the internal double quotes (<code>&quot;</code>) by double double quotes (like <code>name=&quot;&quot;@path&quot;&quot;</code>) does not solve the issue, and using single quotes neither. (Please don't tell me the issue is due to the single backslashes in <code>@path</code>)</p>
  <p>Does anybody know how I can solve this, preferably without using a simple <code>for</code>-loop: I'm trying to understand how to replace the UNIX <code>find ... -exec</code> by Windows <code>forfiles ... /C &quot;cmd /c ...&quot; ...</code>.</p>
  <p><strong>Edit:</strong> Maybe the question can be more general: apparently there is not one question on the entire site, containing the tags <code>[forfiles]</code> and <code>[wmic]</code>: is it possible that both commands don't go well together and why?</p>