2015-04-19 27 views
0

我有2個問題。批處理文件字符串存儲和修改?

問題1:包含以下輸出(從wget的)已經被存儲在一個字符串:

wgetstring=Length 2012123 (20M) [text.txt something] 
        ↑        ↑ <-- This data can be random. 

現在我想後刪除所有字符「長度2012123」從那「wgetstring」,我該怎麼做到這一點?


問題2:已經被存儲在我有一個包含以下輸出(從CMD)的字符串:

cmdstring=cmd.exe /c ""C:\Users\Ben\Desktop\main.bat" "C:\Users\Ben\script.bat" 
        ↑        ↑ ↑      ↑ <-- This data can be random. 

現在我想只存儲這個輸出(「 「C:\ Users \ Ben \ Desktop \ main.bat」)從「cmdstring」輸出,因此它可以進一步存儲爲

cmdstringupdated=C:\Users\Ben\Desktop\main.bat 

但是,沒有任何引號。


任何幫助將不勝感激。謝謝。

+0

被存儲在一個文件wget的輸出或你想直接執行的命令? – npocmaka

+0

它通過一個for循環存儲在一個字符串,所以,我猜直接?欣賞快速反應。 – Anonymous

回答

1

Q1。

假設你執行wget的直接

@echo off 
for /f "tokens=1,2" %%a in ('wget command') do (
    set "len_str=%%a %%b" 
) 
echo %len_str% 

Q2。

@echo off 
set "some_string=cmd.exe /c ""C:\Users\Ben\Desktop\main.bat" "C:\Users\Ben\script.bat"" 

echo %some_string% 
set some_string=%some_string:""="% 
for /f "usebackq tokens=3" %%a in ('%some_string%') do echo %%~a 

rem :: or use this 
call :p %some_string% 

exit /b 0 

:p 

echo %~3 
+0

對不起,如果我以前的帖子不夠清楚(我已經更新了)。 「%% a」後面似乎有雙倍空間,「%% b」來自哪裏?並且你提供的第二個答案看起來像引號「」「已被錯誤放置,謝謝,並且我很感謝快速響應。乾杯。 – Anonymous

+0

@匿名'%% b'是for/f命令中的第二個命名標記。第一個是% %a - http://ss64.com/nt/for_f.html。這個用法'set'varaiable = value''用來在'value'中包含特殊符號而沒有轉義。像引號。 – npocmaka

+0

@Anonymous - 看起來像在第二個問題末尾有一個缺失的報價 – npocmaka

相關問題