2016-02-08 147 views
0

我想在我的批處理腳本中的每一行.txt文件中循環,並獲取其中的每個字符串。使用批處理腳本在文本文件中查找字符串

我的文件是這樣

'string number 1' 'string number 2' 'string number 3' 
'string number 11' 'string just string' 
//... 

而且我想知道如何獲得通過簡單的引號括起來的每一個字符串。

我希望我很清楚。

感謝您的幫助!

回答

1
@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET "sourcedir=U:\sourcedir" 
SET "destdir=U:\destdir" 
SET "outfile=%destdir%\outfile.txt" 
SET "filename1=%sourcedir%\q35266036.txt" 
(
FOR /f "usebackqdelims=" %%a IN ("%filename1%") DO (
SET "line=%%a" 
SET "line=!line:'="!" 
FOR %%w IN (!line!) DO echo '%%~w' 
) 
)>"%outfile%" 

GOTO :EOF 

你需要改變的sourcedirdestdir設置以適合你的情況。

我用一個名爲q35266036.txt的文件來存放我的測試數據。

主要生產定義爲%OUTFILE%

簡單的文件,讀取每個文件%%a再放入line爲strng操縱。

替換每個'

過程如雙引號串的空間分隔的列表。

刪除引號,並用單引號替換(如果需要)


修復以保存前兩項

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
SET "sourcedir=U:\sourcedir" 
SET "destdir=U:\destdir" 
SET "outfile=%destdir%\outfile.txt" 
SET "filename1=%sourcedir%\q35266036.txt" 
set "item1=" 
set "item2=" 
(
FOR /f "usebackqdelims=" %%a IN ("%filename1%") DO (
SET "line=%%a" 
SET "line=!line:'="!" 
FOR %%w IN (!line!) DO (
    echo '%%~w' 
    if defined item1 if not defined item2 set "item2=%%~w" 
    if not defined item1 set "item1=%%~w" 
) 
) 
)>"%outfile%" 

echo item1=%item1% 
echo item2=%item2% 

GOTO :EOF 
+0

這只是完美!非常感謝您的時間和解釋! – Benobab

+0

還有一個問題,如果我想要例如存儲第一個單詞,第二個,並在「秒」之後使用它們?我嘗試這樣做,但它似乎不起作用.. SET「i = 0」 FOR %% w IN(!line!)DO( echo'%%〜w' IF!i!EQU「0」 ( SET I = 1個 SET 「P1 = '%%〜W'」 回波!P1! ) IF!我!EQU 「1」( SET I = 1個 SET「P2 ='%%〜瓦特'「 echo!p2! ) ) echo。 '!P1!' 回聲。 '!P2!' – Benobab

+0

基本上我想將所有這些參數發送到一個sql腳本,所以我一次需要它們 – Benobab

相關問題