求批处理一键转化目录下所有txt,能用电脑记事本正常换行显示?
发布网友
发布时间:2022-04-25 20:51
我来回答
共3个回答
热心网友
时间:2022-06-17 07:25
不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为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 "[IO.File]::ReadAllText('%~f0',[Text.Encoding]::GetEncoding('GB2312'))|Invoke-Expression"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path='.';
$enc=[Text.Encoding]::UTF8;
$files=@(dir -liter $path|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});
if($files.length -ge 1){
write-host $files[0].Fullname;
$text=[IO.File]::ReadAllText($files[0].Fullname,$enc);
$text=$text -replace '(?<!\r)\n|\r(?!\n)',"`r`n";
[IO.File]::WriteAllText($files[0].Fullname,$text,$enc);
}追问感谢回复,我测试了下把.txt改成.ass,双击运行,只能更改目录下的一个文件,其他文件并不变.能否循环遍历把目录下所有文件都改一下呢?
测试文件
https://ws28.cn/f/6hbq3x6y9ww
追答
按运行代码后窗口标题栏中的提示联系我
来自:求助得到的回答
热心网友
时间:2022-06-17 07:25
这种不是tab分割,而是windows和linux换行符的区别,windows是\r\n,linux是\n。
你用notepad++替换把\n替换为\r\n即可。追问谢谢回复,这种方法确实可行,如果文件少时,可以这么做,主要我这边目录上百个,上千个txt,文件太多,全拖进去会卡死,所以请教下有没批量替换整个目录所以txt的方法?
追答私信帮写批量工具或脚本。
热心网友
时间:2022-06-17 07:26
查找贴换,就可以处理,在word中,把疑似制表符的空格复制,用回车符^p贴换,点击全部替换就完成,不需要批处理。