Board logo

标题: [文本处理] 批处理如何在不改变原文本编码格式的情况下对文本进行修改? [打印本页]

作者: 8274350    时间: 2014-7-9 13:17     标题: 批处理如何在不改变原文本编码格式的情况下对文本进行修改?

本帖最后由 pcl_test 于 2016-7-17 10:41 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. rem 以下一行等号右边换成你的目标文件夹。
  4. set docu=H:\login
  5. chcp %utf8%
  6. for /f "delims=" %%a in ('dir /s /b "%docu%\*.jsp"') do (
  7. for /f "usebackq delims=" %%b in ("%%a") do (
  8.   set var=%%b
  9.   echo !var:.js"=.jsgz"! >>"%temp%\temp.jsp"
  10. )
  11. move /y "%temp%\temp.jsp" "%%a"
  12. )
  13. pause
复制代码

作者: 8274350    时间: 2014-7-9 13:18

沙发自己拿。。。。大家帮帮忙哈!!!顶
作者: 8274350    时间: 2014-7-9 13:23

板凳自己拿  大神呢
作者: DAIC    时间: 2014-7-9 13:28

bat文件是什么编码格式?
jsp文件是什么编码格式?
作者: DAIC    时间: 2014-7-9 13:29

%utf8% 这个变量是在什么地方定义的?
chcp %utf8% 这样操作的目的是什么?
作者: 8274350    时间: 2014-7-9 13:58

@echo off
setlocal enabledelayedexpansion
rem 以下一行等号右边换成你的目标文件夹。
set docu=H:\login

for /f "delims=" %%a in ('dir /s /b "%docu%\*.jsp"') do (
for /f "usebackq delims=" %%b in ("%%a") do (
  set var=%%b
  echo !var:.js"=.jsgz"! >>"%temp%\temp.jsp"
)
move /y "%temp%\temp.jsp" "%%a"
)
pause

是这个,没有chcp %utf8%这一段
jsp文件就是java的web文件,相当于HTML文件
作者: 8274350    时间: 2014-7-9 14:01

现在就是,怎么把jsp编码格式是 utf-8的
替换内容输出后,怎么还是原来的格式


BAT文件里面生成文件或者用>输出文件时何指定编码格式现默认ANSI生成完文件里面文乱码现
需要输出时编码UTF-8
作者: DAIC    时间: 2014-7-9 15:09

回复 7# 8274350


    BAT无法直接处理UTF-8格式的文件
作者: storm8    时间: 2014-7-9 15:38

楼主,用sed、gawk这些三方工具吧
作者: CrLf    时间: 2014-7-9 15:40

powershell:
  1. Out-File  -encoding 'utf8' -inputobject ((type a.txt) -replace 'a','') '你的文件.txt'
复制代码

作者: CrLf    时间: 2014-7-9 15:41

回复 9# storm8


    如果没有 65535 代码页支持,sed 也无法直接处理 utf-8




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2