[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
你说的大文件是多大,100M还是1G还是2G

QQ 20147578

TOP

回复 23# aloha20200628


    嗯 确实不行还得要转

TOP

本帖最后由 aloha20200628 于 2024-5-13 18:53 编辑

回复 22# 娜美

非也
如果1.txt采用utf-8编码+unix换行符,试试下式吧...
  1. powershell "$s=[io.file]::readalltext('1.txt',[text.encoding]::'utf8');[io.file]::writeAlltext('2.txt',$s,[text.encoding]::'default')"
复制代码
至少用powershell v4是不行滴 ...

TOP

回复 18# aloha20200628


   似乎不用担心MAC/或unix换行符问题,  试过经过Poweshell处理的都会统一变成dos的换行符格式, So, 不需要再more

TOP

本帖最后由 aloha20200628 于 2024-5-13 12:46 编辑

回复 19# 娜美

网论有说硬件性能 ‘足够’ 即可令ps一口吞下1G大小的文件。
过去议论纯P的用法时,也常说不要碰其大(64M)小(8K)天花板。
小车超载,只能取 ‘细分多次’ 之策了,简单之举,或者改 ‘一次读取’ 为 ‘分行读取’,或者先将大文件按行数切成多个小文件,或者移步国内外专门的ps论坛求经盘道...
总之,都是 ‘时间换空间’ 的不同把戏而已...

TOP

本帖最后由 娜美 于 2024-5-13 10:46 编辑

3楼代码 and 10楼代码一般大文件可以的,,    但较大文件就需要更多内存

这写法会挤满内存哦
  1. powershell "$s=[io.file]::readalllines('%%~F',[text.encoding]::utf8);[io.file]::appendalllines('allinOne.txt',$s,[text.encoding]::default)"
复制代码

TOP

本帖最后由 娜美 于 2024-5-13 15:25 编辑

回复 18# aloha20200628

powershell "$s=[io.file]::readalllines('%%~F',[text.encoding]::utf8);[io.file]::appendalllines('allinOne.txt',$s,[text.encoding]::default)"
大哥哥,用这个合并是不是会使内存挤满呢,我偿试制造一个比较大文件试了一下,观察了内存似乎是要挤满的,还弹出红色字体报告,除了这个写法外,还能有其他的替代它没?

TOP


不仅系统命令more,而且powershell的gc/sc方法和[io:file]readAlllines/writeAlllines方法亦可修复源文件中的unix换行符,故重新订正了3楼和10楼代码,不必用more出手马后炮了。以前须烦劳正则替换来用'\r\n'规整文件中的多种换行符,其实极简之道是在命令行上跑一遍more就齐活了...

TOP

本帖最后由 娜美 于 2024-5-12 08:03 编辑

谢谢

TOP

本帖最后由 aloha20200628 于 2024-5-10 13:24 编辑


文件编码转换方法在c/c++/c#/vbs/js/powershell/...都有成熟的功能实现,其中亦可采用非常高效的选项,但在文件编码检测方面目前仍是一个近似解,因此业界称其为‘推测’方法。
已经用过几款专用的文件编码推测工具:
   chardetect.exe 基于Mozilla(火狐浏览器出品商)开源代码,可在python的chardet应用资源中获取
   uchardet.exe 基于Mozilla开源代码,可在 https://github.com/JetDemo/uchardet 下载
   file.exe 属于GNU资源,可在本论坛第三方下载
使用中有一些区别简报如下》
chardetect / file / uchardet 均可排查非文本文件;
chardetect / file 可返回细分信息;
chardetect 对多种常用编码误判率最低,但反应也最慢尤其是对大数据;
file 对中文编码误判率明显。

TOP

本帖最后由 娜美 于 2024-5-9 21:49 编辑

回复 13# Five66


   1楼(小容量文件)    3楼 and 10楼 是很好解决方案  帅的

TOP

回复 12# aloha20200628


   thanks

TOP

快和准确不可兼得
简单跟帅也不可兼得
用第三方 file 也能获得编码 http://bcn.bathome.net/s/tool/index.html?key=file

TOP

回复 11# 娜美

8楼代码段 for /r %%a in (*.txt) 只能获取按文件名升序排列的全路径文件名列表,效果与 dir /b/s/a-d *.txt 相同,1楼b.txt中的文件名被人为排序显然与其不符。在命令行运行 dir /? 即可了解》采用 dir 获取文件名列表可通过 文件名或扩展名升降序/文件尺寸/时间属性 来调整排序结果,没有其他更便捷的方法了...

TOP

本帖最后由 娜美 于 2024-5-9 17:03 编辑

回复 10# aloha20200628


   谢谢大哥哥这次更帅了哦,  还请帮我看看8楼修改下, 准备另一个备用

TOP

返回列表