Robiąc to w środku test.bat
plik:
for %%i in (__src\*.js) do jsmin <"%%i" >"temp\%%~ni%%~xi" "(C) Example"
Spodziewałem się zobaczyć:
D:\Temp>jsmin <"__src\background.js" >"temp\background.js" "(C) Example"
ale widzę to zamiast tego:
D:\Temp>jsmin "(C) Example" 0<"__src\background.js" 1>"temp\background.js"
Dlaczego ten zły porządek i <
zastąpione przez 0<
, >
zastąpione przez 1>
?
Jak zamiast tego uzyskać normalne zamówienie? (jak chciał jsmin )
jsmin <fulljslint.js >jslint.js "(c)2002 Douglas Crockford"
for %%i in (__src\*.js) do echo jsmin ^<"%%i" ^>"temp\%%~ni%%~xi" "(C) Example"
a zamówienie jest poprawne bez poprzedzonych cyfr. W przeciwnym razie może być konieczne setlocal enabledelayedexpasion
i ustaw podstawione wartości jako zmienne, a następnie umieść te zmienne w poleceniach za pomocą !varnames!
może tak. Jeśli jednak po prostu odbijasz echo, tak właśnie to rozwiązałem, dodając symbole karetki, ale myślę, że próbujesz przekierować za pomocą komendy jsmin i nie mam tego do przetestowania, aby potwierdzić to w tej chwili.
for %%i in (__src\*.js) do jsmin ^<"%%i" ^>"temp\%%~ni%%~xi" "(C) Example"
ale to nie działa
0<
=<
i1>
=>
). Jest to po prostu sposób, w jaki polecenia są powtarzane po rozwinięciu.