[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
看到前辈们处理UTF8是在前面加chcp 65001>nul。

TOP

回复 4# 5i365
忘记关闭回显(代码前加@)了。已修改。

TOP

回复 2# qixiaobin0715


    我现在不明白, 为什么A.csv和B.csv文件都是UTF8的情况下会产生乱码, UTF8不是兼容所有字符吗?

TOP

我现在能想到的万能的解法是, 不管原文本文件是什么编码格式, 都先用@went大侠的 Coder转成utf8, 然后用powershell代码 导入和导出文本文件

TOP

回复 2# qixiaobin0715


    刚试了下单行的那个批处理, 生成的文件全是如下类似的路径, 修改单行CMD,像是雾里看花, 看来最好还是用powershell代码
C:\Users\Administrator\Desktop\新建文件夹>(if defined 国语,洛先生,孤城 (echo,3,国语,洛先生,孤城,已完成 )  else echo,3,国语,洛先生,孤城 )

TOP

本帖最后由 5i365 于 2022-1-20 08:37 编辑

回复 2# qixiaobin0715


    非常感谢,

又遇到糟心的乱码问题了!
A.csv和b.csv必须全部是ANSI编码, 编码不同, 或编码都是UTF8, 生成的会是乱码, 这个有什么万能的解法吗?
另外,发现UTF8编码的CSV文件用Excel打开时会乱码, 还要转成ANSI,

TOP

本帖最后由 qixiaobin0715 于 2022-1-20 09:31 编辑

用批处理试试。
正常代码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "skip=1 tokens=1* delims=," %%a in (b.csv) do set "%%b=true"
  4. (for /f "tokens=1* delims=," %%i in (a.csv) do (
  5.     if defined %%j (
  6.         echo,%%i,%%j,已完成
  7.     ) else (
  8.         echo,%%i,%%j
  9.     )
  10. ))>c.csv
  11. move c.csv a.csv
  12. pause
复制代码
合并成一行:
  1. @setlocal enabledelayedexpansion&(for /f "skip=1 tokens=1* delims=," %%a in (b.csv) do set "%%b=true")&(for /f "tokens=1* delims=," %%i in (a.csv) do (if defined %%j (echo,%%i,%%j,已完成) else echo,%%i,%%j))>c.csv&move c.csv a.csv
复制代码
1

评分人数

    • 5i365: 乐于分享, 非常感谢技术 + 1

TOP

返回列表