所以我想搜索一個文本文件的2個相鄰的字母。 文本文件會以這種格式批量添加兩個相鄰的字母周圍的報價
a
b
c
d
e
但是,如果有說aa
,我希望添加「」圍繞它,所以它最終會被"aa"
。 最好使用批次。 此外,如果它碰巧是xz
,結果將是"xz"
,我可以用一個簡單的查找和替換來做到這一點,但它需要676個不同的場景,所以有更簡單的方法嗎?
所以我想搜索一個文本文件的2個相鄰的字母。 文本文件會以這種格式批量添加兩個相鄰的字母周圍的報價
a
b
c
d
e
但是,如果有說aa
,我希望添加「」圍繞它,所以它最終會被"aa"
。 最好使用批次。 此外,如果它碰巧是xz
,結果將是"xz"
,我可以用一個簡單的查找和替換來做到這一點,但它需要676個不同的場景,所以有更簡單的方法嗎?
@echo off
(
echo a
echo c
echo cd
echo def
echo e
echo fg
echo efg
echo xz1
echo xz123
echo xz14
)>_list.tmp
setlocal EnableDelayedExpansion
for /F %%i in (_list.tmp) do (
set "str=%%i"
if "!str:~1!" EQU "" (echo !str!) else if "!str:~2!" EQU "" (echo "!str!") else (echo !str!)
)
exit /b 0
輸出
a
c
"cd"
def
e
"fg"
efg
xz1
xz123
xz14
如果 「文件每行有1或2個字符,所有這些都是英文字母的字符」,你想「在兩個相鄰的字母周圍添加引號」,那麼你真的想爲有2個字符的行添加引號,不管它們是哪個字符,不是嗎?
@echo off
setlocal EnableDelayedExpansion
rem Process all file lines
for /F "delims=" %%a in (input.txt) do (
set "line=%%a"
rem If the line have just one character
if "!line:~1!" equ "" (
rem Show the same line
echo %%a
) else (
rem Enclose the two chars in quotes
echo "%%a"
)
)
這是完美的,但現在我只需要原來的文件替換爲編輯 – Jokru
您的要求是不明確的。文件是否只能包含帶有一個或兩個字母的行?如果不是,請描述其他情況和期望的結果。 – Aacini
該文件每行有1或2個字符,全部爲英文字母的字母 – Jokru
@Paul英文字母表中有25個字母,每行有1或2個字符。如果只有1我不需要做任何事情。如果有2個,則有625種不同的可能性(它可以是「aa」,「ab」,「ac」一直到「zz」25^2或25平方)http://bit.ly/1RPEprA – Jokru