Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理脚本将数据库名称放入变量_Batch File - Fatal编程技术网

Batch file 批处理脚本将数据库名称放入变量

Batch file 批处理脚本将数据库名称放入变量,batch-file,Batch File,我已经运行了脚本,将数据库名称放入变量中,以检查一些条件。但是当我运行脚本并从变量中测试echo时,它不起作用。请看我的代码: %mysql% -u%dbuser% -p%dbpass% -s -N -e "SHOW DATABASES" | FOR /F "usebackq" %%D IN (`findstr /V "information_schema performance_schema mysql test"`) DO SET dbname=%%D echo %dbname% 结果是:

我已经运行了脚本,将数据库名称放入变量中,以检查一些条件。但是当我运行脚本并从变量中测试echo时,它不起作用。请看我的代码:

%mysql% -u%dbuser% -p%dbpass% -s -N -e "SHOW DATABASES" | FOR /F "usebackq" %%D IN (`findstr /V "information_schema performance_schema mysql test"`) DO SET dbname=%%D echo %dbname%
结果是:

SET dbname=mydatabasename echo
我在脚本的头上放了一个命令
SETLOCAL
,但运气不好

@echo off

SETLOCAL ENABLEDELAYEDEXPANSION


有人能帮我得到正确的命令吗?

您不能像编写命令那样在同一行上有两个单独的命令。您有两个选择:

选项1:使用括号创建代码块

setlocal enabledelayedexpansion
for /f "usebackq" %%d in (`findstr /V "information_schema performance_schema mysql test"`) do (
    set dbname=%%d
    echo !dbname!
)
请注意,您需要启用延迟扩展并使用
而不是
%
来调用在代码块内部设置的变量

选项2:使用
&
连接两个命令

for /f "usebackq" %%d in (`findstr /V "information_schema performance_schema mysql test"`) do set dbname=%%d&echo %dbname%