如何獲取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