Ao fazer isso dentro de um test.bat
arquivo:
for %%i in (__src\*.js) do jsmin <"%%i" >"temp\%%~ni%%~xi" "(C) Example"
Eu esperava ver:
D:\Temp>jsmin <"__src\background.js" >"temp\background.js" "(C) Example"
mas vejo isso:
D:\Temp>jsmin "(C) Example" 0<"__src\background.js" 1>"temp\background.js"
Por que essa ordem errada e <
substituída por 0<
, >
substituída por 1>
?
Como obter a ordem normal? (como desejado por jsmin )
jsmin <fulljslint.js >jslint.js "(c)2002 Douglas Crockford"
Sim, mas ele ainda faz jsmin falhar com ordem errada ...
—
Basj
@Basj Se você estiver ecoando, tente
—
Juice Pimp TI
for %%i in (__src\*.js) do echo jsmin ^<"%%i" ^>"temp\%%~ni%%~xi" "(C) Example"
e a ordem está correta sem os dígitos prefixados. Caso contrário, você pode precisar setlocal enabledelayedexpasion
definir os valores substituídos como variáveis e, em seguida, colocar essas variáveis nos comandos com o mesmo !varnames!
tipo. Se você está apenas ecoando, foi assim que resolvi adicionando os símbolos de sinal de intercalação, mas acho que você está tentando redirecionar com o comando jsmin e não preciso fazer o teste para confirmar para você no momento.
O programa que está sendo executado não sabe onde na sequência de execução os redirecionamentos estão sendo aplicados: ele vê apenas os parâmetros. Quando o comando está ecoando, todos os redirecionamentos em um arquivo em lotes são exibidos dessa maneira.
—
AFH
@PimpJuiceIT Eu tentei com
—
Basj
for %%i in (__src\*.js) do jsmin ^<"%%i" ^>"temp\%%~ni%%~xi" "(C) Example"
, mas ele não funciona
0<
=<
e1>
=>
). É assim que os comandos são repetidos após a expansão.