请高手解答:批处理文本行指定字符移动到该行行首的问题?

作者&投稿:暴风 (若有异议请与网页底部的电邮联系)
@echo off & title 给特定行首加入指定字符串 By 依梦琴瑶
::设置指定字符串
set Str=XXXXXXXX

::设置搜索的特定字符串
set Var=.exe

for /f "delims=" %%a in ('dir /a-d/s/b *.txt') do (
(for /f "usebackq delims=" %%i in ("%%~i") do (
echo "%%~i" | find "%Var%" >nul 2>nul && (
echo %Str%%%~i
) || (
echo %%~i
)
))>"file_tmp_new"
move /y "file_tmp_new" "%%~a" >nul 2>nul
)
pause

::非主代码,可友情执行
@echo off & title 友情代码
call :Dona
exit

:Dona
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit

友情提示:此平台加入了防抄袭干扰码,复制粘贴代码后,务必比对原文,以免代码中包含干扰码,导致脚本运行出错。
脚本的保存编码务必选择为ANSI。

至于把.exe移动前面,这个可以写,但您又说了一句,.exe前面的文字是另一个文件的标题,这就有点无法理解了,毕竟您贴出的举例,那些文字前面没啥啊!所以建议您提供实际的文本内容,以供我们分析。

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行
<# :
cls
@echo off
rem 查找出txt文本文件内包含有指定关键字/字符串的行,并把该关键字移动到所在行的行首/开头位置
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312')))) -Args '%~f0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$keyword='.exe';

$newfolder=".\result";
$self=get-item -liter $args[0];
$path=$self.Directory.FullName;
$newfolder=$newfolder -replace '^\.',$path;
if(-not (test-path -liter $newfolder)){[void](md $newfolder)};
$enc=[Text.Encoding]::GetEncoding('GB2312');
$files=@(dir -liter $path|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
for($i=0;$i -lt $files.length;$i++){
write-host $files[$i].Name;$reg=[regex]::Escape($keyword);
$text=[IO.File]::ReadAllLines($files[$i].FullName,$enc);
for($j=0;$j -lt $text.Count;$j++){
$tmpline=([regex]$reg).replace($text[$j],'',1);
if($tmpline -ne $text[$j]){$text[$j]=$keyword+$tmpline;};
};
$newfile=$newfolder.trimend('\')+'\'+$files[$i].Name;
[IO.File]::WriteAllLines($newfile, $text, $enc);
};

~

批处理文件实现文本文件里面指定的字符替换?
答:不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行 echo off&mode con lines=5000 rem 修改/替换一个txt文本文件里的指定字符串内容 set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4 title ...

批处理怎么删除或修改TXT文本中的特定字符串?
答:title 文本处理脚本 for /f "delims=^>^< tokens=2" %%i in ( 'type 1.txt' ) do echo %%i >>2.txt echo 处理完毕!任意键退出...pause>nul ::=== 说明:原始内容请保存为1.txt,然后将批处理放于同一目录运行即可,2.txt就是你要的结果,当然其中1.txt 、2.txt 还有路径你都可以...

批处理如何输出文本直到指定字符所在的行
答:echo off & title 输出第三位为3的字符行前面的行数 By 依梦琴瑶 for /f "usebackq delims=" %%a in ("a.txt") do (call :Analyze "%%~a"):End pause call :Donate exit :Donate set "S0=fPdv"set "S1=.:ailnhpst/"set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%...

如何用批处理 给 TXT文本批量添加首行固定的文字 输出编码是UTF_8...
答:不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起双击运行 <# :cls&echo off&mode con lines=5000 rem 在当前目录里的txt文本文件开头添加/插入一行的字符内容 set #=Any question&set @=WX&set $=Q&set/az=...

批处理文本文件中固定字符替换程序
答:h:%str%=NNNNN start!" echo.!h!))>temp.yky move temp.yky "%%i")Pause 简单修改了下.下面的代码有交互界面可以手动指定要替换的字符串和替换后的字符串(百度知友 "香蕉更好吃" 的建议).echo off&setlocal enabledelayedexpansionset /p "str=请输入要替换的字符串:"set /p "str1=请...

批处理 在指定行的行首(以X开头),添加指定字符
答:targetchar="X" '行首要查找的字符Addstr="UX1:" '想要添加的字符Set fso = WScript.CreateObject("Scripting.Filesystemobject")Set fsrc=fso.OpenTextFile("1.txt")'假设原文件为1.txtSet fdes=fso.CreateTextFile("OutPut.txt",True)'生成OutPut.txtdo until fsrc.AtEndOfStreams=fsrc.Read...

批处理提取文本中含有指定字符串的行
答:echo offsetlocal enabledelayedexpansionset /p str=请输入要查找的字符串,回车确认:findstr /i /c:"%str%" a.txt >b.txtfindstr /v /i /c:"%str%" a.txt >c.txtpause

批处理bat查找记事本文件中指定字符串并替换为回车,也就是换行,最后保...
答:echo off(for /f "delims=" %%a in (a.txt) do (call :replace_str "%%a"))>a.logpause&exit:replace_strsetlocal&set "str=%~1"echo;%str:中国=&echo %endlocal&goto:eof

如何批处理,txt文件插入字符?
答:向文本文bai件中输入文字的方法有很多。其实原理都一样du,只要懂zhi一种就可以了 echo 要输入的文字>text.txt echo 第二行字>>text.txt echo 第三行dao字>>text.txt 就是文字输入到text.txt中,如果文件text.txt不存在,那么就自动创建。如果你想多写两句的话那么就多写几个echo命令就可以了 ...

如何使用bat脚本批处理所有txt文本文件中的每一行开头添加一个指定字...
答:要实现不太难,不建议的话把原文件传给我,这样我不用去花时间写测试样本文件了。友情提示:不要多次运行此脚本,每运行一次都会在文本每行前加上当前文本名,也就是运行两次会加两次。如果有必要完善,就请继续提问。echo off ::设置文本目录set "SourDir=D:\test5"cd /d %SourDir%for /f ...