批处理修改文件内容出现乱码命令该怎么修改?
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 还是不行 展开
@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 还是不行 展开
1个回答
展开全部
乱码的原因就在于你在行首加入的文字内容,如果这些文字正好是某些特定的内容,比如说:联通。就会导致整个txt打开乱码(就算是你新建一个txt,然后输入联通两个字,保存后打开都会变成乱码)。这是因为系统检查到某些文字后,就使用了错误的编码方式进行识别。
解决方法可参考
给UTF-8文本加BOM的批处理
http://zhidao.baidu.com/question/347072969.html
其实要实现你这种功能,用批处理确实很难实现,但如果用powershell的话,就是两三行代码的事。。。
解决方法可参考
给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"。
运行前
运行结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询