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"
command-line
batch
pipe
Basj
źródło
źródło
0<
=<
i1>
=>
). Jest to po prostu sposób, w jaki polecenia są powtarzane po rozwinięciu.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ć koniecznesetlocal 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łaOdpowiedzi:
Nie mogę w to uwierzyć, ale problemem była tylko nowa linia. Z tym
test.bat
, to nie działa poprawnie (ciąg praw autorskich nie jest dodany jak jsmin powinien to zrobić, a pierwszy wiersz wyjściowego pliku JS jest pusty):Ale z tym
test.bat
, to działa:źródło