如何获取myVar
属性的值以用于其他代码部分。用于管道输出变量的Windows批处理
set myVar =
ECHO "httpsxxxxxx_cmidxxxxx_2014-04-12_14-54-53_abc3654.xml" | find /i "2014-04-12" | (set /p myVar= & set myVar)
ECHO myvar "%myVar%" /**** This is empty String**********/
如何获取myVar
属性的值以用于其他代码部分。用于管道输出变量的Windows批处理
set myVar =
ECHO "httpsxxxxxx_cmidxxxxx_2014-04-12_14-54-53_abc3654.xml" | find /i "2014-04-12" | (set /p myVar= & set myVar)
ECHO myvar "%myVar%" /**** This is empty String**********/
尝试这样的:
@echo off
for /f "delims=" %%a in ('ECHO "httpsxxxxxx_cmidxxxxx_2014-04-12_14-54-53_abc3654.xml" ^| find /i "2014-04-12"') do set MyVar=%%a
echo %MyVar%
我不anderstand你正在尝试做的。
但是,假设您正在查找在目录中包含字符串"2014-04-12"
的.xml
文件。该代码将是:
@echo off
for /f "delims=" %%a in ('dir /b/a-d *.xml ^| find /i "2014-04-12"') do set MyVar=%%a
注解代码:
1: set myVar =
2: ECHO "httpsxxxxxx_cmidxxxxx_2014-04-12_14-54-53_abc3654.xml" | find /i "2014-04-12" | (set /p myVar= & set myVar)
3: ECHO myvar "%myVar%" /**** This is empty String**********/
线1 :,有myVar
和=
之间的空间。这是不正确的。 CMD.EXE认为有一个变量叫做"myVar "
。将其更改为"myVar"
。 在线2 :,我想你打算使用TYPE
来输出文件“httpsxxxxxx_cmidxxxxx_2014-04-12_14-54-53_abc3654.xml”。在任何情况下,你可以写这个,而是:
FIND /I "2014-04-12" httpsxxxxxx_cmidxxxxx_2014-04-12_14-54-53_abc3654.xml
也许你问的是:
此行
echo "someValue" | find /i "Value" | (set /p myVar= & set myVar)
会显示您的变量设置。 echo
命令将其输出发送到find
命令,并将其输出传送到set /p
,将值分配给变量,set
将在控制台中显示的值。
然后下面的行
echo myvar "%myVar%"
没有显示出数据。为什么?
当cmd
发现一个管的定义,与数据流从一个节目到另一个,每个管中的元件是与父进程的环境块自身拷贝(其中批处理文件单独的工艺正在运行),因此set /p myVar= & set myVar
不在与批处理文件相同的实例中运行。该变量在另一个进程中设置,并且在环境副本中进行更改时,它们在父进程中不可见。
你能解释一下你想得到什么吗?从xml文件中提取someting,这仅仅是一个概念证明,....? –
http://stackoverflow.com/questions/how-to-ask – SachaDee