Ich versuche, eine Variable mit einer durch Leerzeichen getrennten Liste von Dateien zu füllen, aber ich kann mich nicht ganz darum kümmern.
Folgendes habe ich bisher:
set js_files=
for %%f in (js/*.js) do set js_files=%js_files% js/%%f
echo %js_files%
C:\path\to\jsminifier.exe --inputfiles %js_files%
Ich hätte erwartet, dass die js_files
Variable weiterhin an den nächsten Dateinamen angehängt wird, aber stattdessen wird die gesamte Variable ersetzt:
c:\dir>script.cmd
c:\dir>set js_files=
c:\dir>for %f in (js/*.js) do set js_files= js/%f
c:\dir>set js_files= js/one.js
c:\dir>set js_files= js/two.js
c:\dir>set js_files= js/three.js
c:\dir>echo js/three.js
js/three.js
Ich sehe in der zweiten Ausgabezeile, dass die gesamte for
Zeile vor der Ausführung analysiert zu werden scheint, sodass der (anfängliche) leere Variablenwert für alle Iterationen verwendet wird.
Weiß jemand, wie man die Variable richtig anfügt?
Vielen Dank!
quelle
Windows
Version funktioniert es für dich?Setlocal EnableDelayedExpansion
setlocal EnableDelayedExpansion
und Ändern von Ausrufezeichen hat funktioniert. Vielen Dank!