无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2830|回复: 2

[已解决] FOR的应用递增变量的疑问。

[复制链接]
发表于 2014-11-10 16:57:49 | 显示全部楼层 |阅读模式
本帖最后由 zts59 于 2014-11-17 17:12 编辑

CSV1.CSV文件是通讯录文件。
内容:
  1. 姓名,电子邮件,别名,所属部门,联系电话,性别,职务,编号,备注
  2. 王xx,EMAIL1@c.cn,,某工作室/a部门,,男,,,
  3. 欧XX,EMAIL2@c.cn,,某工作室/b部门,,男,,,
  4. 蓝XX,EMAIL3@c.cn,me@c.cn,某工作室/e部门,8061,女,,,
  5. 朱XX,EMAIL4@c.cn,test@c.cn,某工作室/f部门,8052,男,it,,
复制代码


CSV2VCF.bat
内容:
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. rd log /s /q
  4. md log

  5. set /a line=1

  6. for /f  "tokens=1-7 delims=," %%a in (csv1.csv) do (
  7.         if !line! gtr 1 (
  8.                 (echo BEGIN:VCARD)       > log\%%a.txt
  9.                 (VERSION:3.0)                 >> log\%%a.txt
  10.                 (echo N:;%%a;;;)                 >> log\%%a.txt
  11.                 (echo FN:%%a)                         >> log\%%a.txt
  12.                 (echo EMAIL;INTERNET:%%b)         >> log\%%a.txt
  13.                 (echo ORG:;%%d)                         >> log\%%a.txt
  14.                 (echo TEL;TYPE=CELL:%%e)         >> log\%%a.txt
  15.                 (echo TITLE:%%g)                 >> log\%%a.txt
  16.                 (echo END:VCARD)                 >> log\%%a.txt
  17.         )

  18.         set /a line+=1

  19. )
  20. ren .\log\*.txt *.vcf
复制代码


取前2行数据时 因为第3列“别名”和第5列“联系电话”是空的,导致%%d 取到了第6列“性别”了,这个怎么破
发表于 2014-11-10 22:52:53 | 显示全部楼层
换一种思路:
  1. @echo off
  2. rd log /s /q 2>nul
  3. md log
  4. for /f  "tokens=* skip=1" %%a in (csv1.csv) do (
  5.         set "str=%%a"
  6.         setlocal EnableDelayedExpansion
  7.         for %%b in ("!str:,=","!") do (set /a n+=1 & set "_!n!=%%~b")
  8.         (
  9.                 echo BEGIN:VCARD
  10.                 echo VERSION:3.0
  11.                 echo N:;!_1!;;;
  12.                 echo FN:!_1!
  13.                 echo EMAIL;INTERNET:!_2!
  14.                 echo ORG:;!_4!
  15.                 echo TEL;TYPE=CELL:!_5!
  16.                 echo TITLE:!_7!
  17.                 echo END:VCARD
  18.         ) > log\!_1!.vcf
  19.         endlocal
  20. )
  21. pause
复制代码

点评

谢谢,好用呀  详情 回复 发表于 2014-11-11 08:25
回复

使用道具 举报

 楼主| 发表于 2014-11-11 08:25:42 | 显示全部楼层

谢谢,好用呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-29 15:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表