Как сделать оператор OR в командном файле? - PullRequest
4 голосов
/ 13 января 2012

Здравствуйте, хотите исключить 2 или более файлов из моего пакетного файла.

Мой пакетный файл выполняет все SQL файлы в этой папке.

Вот код:

ECHO %USERNAME% started the batch process at %TIME% >output.txt 

FOR %%G IN (*.sql) DO (
//IF would go here to skip unwanted files
sqlcmd.exe  -S RMSDEV7 -E   -d ChaseDataMedia7 -i "%%G" >>output.txt
)

pause

Итак, как бы мне добавить и если Statemant пропустить файлы в цикле, которые я не хочу выполнять?

Ответы [ 2 ]

4 голосов
/ 13 января 2012

Вы можете связать IFs;

FOR %%G IN (*.sql) DO (
   if not %%G==foo.sql if not %%G==bar.sql (
      some command "%%G"
   )
)
2 голосов
/ 14 января 2012
@echo off
setlocal EnableDelayedExpansion
set unwantedFiles=foo bar baz
for %%g in (*.sql) do (
   set "test=!unwantedFiles:%%~Ng=!"
   if "!test!" == "!unwantedFiles!" (
      echo %%~Ng.sql is not unwanted, process it:
      echo Process with %%g
   )
)

Возьмите имя и скопируйте ненужные файлы, удалив текущее имя.Если результат такой же, как и раньше, это имя НЕ в unwantedFiles, поэтому обработайте его ...

...