Variável e condições com o Windows em lote

0

Eu gostaria de fazer um lote.

O objetivo é simples:

Para todos os arquivos com DSW xtension

Se meu nome de arquivo contiver VU1, então variável1 = 2 e variável2 = 2
Se meu nome de arquivo contiver VU2, então variável1 = 20 e variável2 = 30

Fim

Eu tento:

FOR %%f IN (*VU1*.dsw) DO (
  @echo off set variable1=2
  @echo off set variable2=2 
)
FOR %%f IN (*VU2*.dsw) DO (
  @echo off set variable1=20
  @echo off set variable2=30 
)

Quando faço eco da minha variável, tenho: echo null.

Algo está errado.

    
por Pru-Yauou 06.12.2014 / 19:01

1 resposta

0

Seu objetivo é bem formulado, então por que você não o transforma em comandos em lote ?

@ECHO OFF >NUL
@SETLOCAL enableextensions enabledelayedexpansion
rem For all files with DSW xtension
FOR %%f IN (*VU*.dsw) DO (

  rem get my filename: no path, no file extension
  set "filename=%%~nf"

  rem initialize variables
  set "variable1=var1" 
  set "variable2=var2"

  rem If my filename contains VU1 so variable1=2 and variable2=2
  If not "!filename:VU1=!"=="!filename!" (
    set "variable1=2" 
    set "variable2=2"
  )
  rem If my filename contains VU2 so variable1=20 and variable2=30
  If not "!filename:VU2=!"=="!filename!" (
    set "variable1=20" 
    set "variable2=30"
  )
  rem display result
  echo %%f "!filename!" !variable1! !variable2!
)
rem end
ENDLOCAL
goto :eof
    
por 08.12.2014 / 02:46