我想在我的批处理脚本中循环我的.txt文件的每一行,并获取其中的每个字符串。
我的文件就像
'string number 1' 'string number 2' 'string number 3'
'string number 11' 'string just string'
//...
我想知道如何让每个字符串都被简单的引号包围。
我希望我足够清楚。
感谢您的帮助!
答案 0 :(得分: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
您需要更改sourcedir
和destdir
的设置以适合您的具体情况。
我使用了一个名为q35266036.txt
的文件,其中包含我的测试数据。
生成定义为%outfile%
的文件只需将每个文件读取到%%a
,然后输入line
进行强制操作。
将每个'替换为“
以空格分隔的双引号字符串列表处理。
删除引号并替换为单引号(如果需要)
修改以保存前2项
@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