批处理修改文件内容出现乱码命令该怎么修改?

chcp437@echooff&colorf1::下面等号后为要加的字符串,加多行每行写一个setst1=首段前要插入的内容::下面是和上面对应的有几行类似写几句,只是第... chcp 437
@echo off&color f1
::下面等号后为要加的字符串,加多行每行写一个
set st1=首段前要插入的内容

:: 下面是和上面对应的有几行类似写几句,只是第一句中是单>后面的都是>>:
echo.%st1%>yky

echo 正在处理。。。
for /f "delims=" %%i in ('dir/b/a-d *.txt')do (
ren "%%i" "%%i.yky"
type yky>"%%i"
type "%%i.yky">>"%%i"
del "%%i.yky"
)
del yky
echo.处理完毕,即将退出。。。
ping 127.1>nul

这是我用的批处理命令,运行后确实在每个文件的开头插入了我需要的内容,可是其他的内容却变成了乱码,这个我要怎么修改呢? 还有就是 插入的内容要和第一段文字相连 不分段 又该怎么设置?
我在网上搜索了相关的问题有人说 在最前面加上 chcp 437 如果不行就换成 chcp 936 还是不行
展开
 我来答
recycelbin
推荐于2016-07-31 · TA获得超过215个赞
知道小有建树答主
回答量:73
采纳率:100%
帮助的人:23.6万
展开全部
乱码的原因就在于你在行首加入的文字内容,如果这些文字正好是某些特定的内容,比如说:联通。就会导致整个txt打开乱码(就算是你新建一个txt,然后输入联通两个字,保存后打开都会变成乱码)。这是因为系统检查到某些文字后,就使用了错误的编码方式进行识别。

解决方法可参考
给UTF-8文本加BOM的批处理
http://zhidao.baidu.com/question/347072969.html

其实要实现你这种功能,用批处理确实很难实现,但如果用powershell的话,就是两三行代码的事。。。
追问
那么用powershell该怎么来实现呢?
追答

不好意思才看到,现在直接上代码。

$FILEPATH="C:\Users\DELL\Desktop\新建文件夹" #你需要处理的文件所在文件夹的完整路径

$TEXT="你要加的文字"

new-item -type directory  -path "$FILEPATH\..\result"

foreach ($file in get-childitem $FILEPATH){$TEMPTEXT=$TEXT;[array]$TEMPTEXT+=(get-content -encoding unicode "$FILEPATH\$file")[0]

[string]$TEMPTEXT | out-file -encoding utf8 "$FILEPATH\..\result\$file"

(get-content -encoding unicode "$FILEPATH\$file")[1..(get-content "$FILEPATH\$file").count] | out-file -encoding utf8 -append "$FILEPATH\..\result\$file"}

 比如说你是处理"C:\Users\DELL\Desktop\新建文件夹"里的文件夹,运行结果就是输出文件到"C:\Users\DELL\Desktop\result"。

运行前

运行结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式