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

[文本处理] 【已解决】如何用批处理将特定文字内容分两列写入excel文件?

本帖最后由 Lumiere 于 2013-8-28 23:24 编辑

我有一个文本,内容很有规律,写在一个名为1.txt的文本文件中,内容如下:
……………………………………
……………………………………
耔晶取向 seed orientation
籽晶生长 seeded growth
均质核化 homogeneous nucleation
异质核化 heterogeneous nucleation
均匀化热处理 homogenization heat treatment
……………………………………
……………………………………
……………………………………

基本都是这样的专业术语,如果我想用批处理把他们分成两列对应写入一个名为1.xlsx的excel文件的话,纯批处理能做到吗?不能的话应该借助什么其他脚本呢?如果可能,请在其他脚本的代码处给出相应的注释,谢谢!
1

评分人数

    • tmplinshi: 感谢给帖子标题标注[已解决]字样PB + 2
Still with wax

  1. @echo off
  2. (for /f "tokens=1*" %%i in (1.txt) do (
  3.     echo %%i,%%j
  4. ))>1.csv
复制代码
1

评分人数

    • Lumiere: 感谢你,能完美实现。技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    我想再问下,如果两列之间没有空格,就是英文和中文直接链接在一起的,比如从“中文english”这样的格式,怎么能方便的用代码实现分离,并且做成那样的excel文件?有没有简单的命令能区分中文和英文字符然后把字符串截断的命令?
Still with wax

TOP

本帖最后由 tmplinshi 于 2013-8-28 15:02 编辑

回复 3# Lumiere
  1. @echo off
  2. call :txt2csv "1.txt" >1.csv
  3. exit /b
  4. :txt2csv <InputFile>
  5. SetLocal EnableDelayedExpansion
  6. for /f "usebackq tokens=*" %%i in ("%~1") do (
  7. set str_full=%%i
  8. for /f "delims=abcdefghijklmnopqrstuvwxyz" %%a in ("%%i") do (
  9. echo %%~nxa,!str_full:*%%a=!
  10. )
  11. )
  12. EndLocal
  13. goto :eof
复制代码
1

评分人数

TOP

回复 4# tmplinshi


经测试完美运行,非常感谢。代码基本都懂,但是还有三个点需要帮忙解疑:
1. csv文件是excel类型文件,为什么能用批处理写入内容形成这种文件却不能写成xlsx文件?
2. 为什么在两部分内容之间加入逗号“,”就可以实现将两部分写在同一行相邻的两个单元格?可以用其他的字符代替么?
3. for结构里最后一条为什么是%%~nxa,这个不是扩展成一个文件名和扩展名的意思吗?不是直接用%%a就可以了吗?
Still with wax

TOP

回复 5# Lumiere

1. csv文件是excel类型文件,为什么能用批处理写入内容形成这种文件却不能写成xlsx文件?

因为批处理只能输出纯文本,而 xlsx 其实是 zip 压缩文件。

2. 为什么在两部分内容之间加入逗号“,”就可以实现将两部分写在同一行相邻的两个单元格?可以用其他的字符代替么?

因为 csv 的格式就是这样——用逗号分隔。可以用 Tab 符号代替,但是文件格式要保存为 UTF-16 LE。

3. for结构里最后一条为什么是%%~nxa,这个不是扩展成一个文件名和扩展名的意思吗?不是直接用%%a就可以了吗?

%%~nxa 可以去掉末尾的空格
1

评分人数

TOP

回复 6# tmplinshi


    谢谢耐心的回复,这个%%~nxa既然说扩展为文件名和扩展名,这个不是跟文件相关的概念么,怎么用在字符串上了,是巧用吗?还有其他的用途么?我先把帖子结了。
Still with wax

TOP

是的,巧用。

TOP

回复 8# tmplinshi

谢谢,无疑问了,多谢解答,结贴了。
Still with wax

TOP

返回列表