2015-02-09 124 views
0

我需要一些帮助。我有这个shell脚本代码,它工作正常。SHELL到BATCH:grep -Ev命令

databases=`mysql -u$dbUser -p$dbPass -e "SHOW DATABASES LIKE '%demo%';" | grep -Ev "(Database|information_schema)"` 

如何将它转换为批处理?

+0

我需要一些帮助。我有这样的代码 ** databases ='mysql -u $ dbUser -p $ dbPass -e“SHOW DATABASES LIKE'%demo%';” | grep -Ev“(Database | information_schema)”' for db in $ databases; do echo $ db done; ** 如何在windows中执行此操作,特别是grep -Ev。我试过 我试过 ** FOR/F“demo”%% D in(' ') do echo %% DD ** 它不起作用。 – xXxrk04 2015-02-09 08:25:29

回答

1

您可以使用它作为基础并适应您的需求。

@echo off 
    setlocal enableextensions enabledelayedexpansion 

    set "dbUser=username" 
    set "dbPass=password" 

    set "databases=" 
    for /f "usebackq delims=" %%a in (` 
     mysql -u%dbUser% -p%dbPass% -e "SHOW DATABASES LIKE '%%demo%%';" 
     ^| findstr /l /v /c:"Database" /c:"information_schema" 
    `) do set "databases=!databases! %%a" 

    echo %databases% 

for命令将执行命令mysql,将与findstr被过滤为不包含所指示的字符串的行。对于每个输出行,将执行do子句中的代码。每条输出线连接到databases变量。