无忧启动论坛
标题:
FOR的应用递增变量的疑问。
[打印本页]
作者:
zts59
时间:
2014-11-10 16:57
标题:
FOR的应用递增变量的疑问。
本帖最后由 zts59 于 2014-11-17 17:12 编辑
CSV1.CSV文件是通讯录文件。
内容:
姓名,电子邮件,别名,所属部门,联系电话,性别,职务,编号,备注
王xx,EMAIL1@c.cn,,某工作室/a部门,,男,,,
欧XX,EMAIL2@c.cn,,某工作室/b部门,,男,,,
蓝XX,EMAIL3@c.cn,me@c.cn,某工作室/e部门,8061,女,,,
朱XX,EMAIL4@c.cn,test@c.cn,某工作室/f部门,8052,男,it,,
复制代码
CSV2VCF.bat
内容:
@echo off
setlocal EnableDelayedExpansion
rd log /s /q
md log
set /a line=1
for /f "tokens=1-7 delims=," %%a in (csv1.csv) do (
if !line! gtr 1 (
(echo BEGIN:VCARD) > log\%%a.txt
(VERSION:3.0) >> log\%%a.txt
(echo N:;%%a;;;) >> log\%%a.txt
(echo FN:%%a) >> log\%%a.txt
(echo EMAIL;INTERNET:%%b) >> log\%%a.txt
(echo ORG:;%%d) >> log\%%a.txt
(echo TEL;TYPE=CELL:%%e) >> log\%%a.txt
(echo TITLE:%%g) >> log\%%a.txt
(echo END:VCARD) >> log\%%a.txt
)
set /a line+=1
)
ren .\log\*.txt *.vcf
复制代码
取前2行数据时 因为第3列“别名”和第5列“联系电话”是空的,导致%%d 取到了第6列“性别”了,这个怎么破
作者:
pznpt
时间:
2014-11-10 22:52
换一种思路:
@echo off
rd log /s /q 2>nul
md log
for /f "tokens=* skip=1" %%a in (csv1.csv) do (
set "str=%%a"
setlocal EnableDelayedExpansion
for %%b in ("!str:,=","!") do (set /a n+=1 & set "_!n!=%%~b")
(
echo BEGIN:VCARD
echo VERSION:3.0
echo N:;!_1!;;;
echo FN:!_1!
echo EMAIL;INTERNET:!_2!
echo ORG:;!_4!
echo TEL;TYPE=CELL:!_5!
echo TITLE:!_7!
echo END:VCARD
) > log\!_1!.vcf
endlocal
)
pause
复制代码
作者:
zts59
时间:
2014-11-11 08:25
pznpt 发表于 2014-11-10 22:52
换一种思路:
谢谢,好用呀
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3