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

[文件操作] 【求助】 一个应用实例 关于变量的嵌套问题 期待高手解决

我是批处理的初学者,前一段时间,我帮助我的一个同学做一个单词软件输出文本的处理。问题是这样的,NewWordBase.txt 内容如下:

+adjacent
#adj.邻近的
&əˈdʒeisənt
$3
+advocacy
#n.支持, 拥护, 鼓吹
&ˈædvəkəsi
$3
+affinity
#n.喜爱
&əˈfiniti
$3
+aka
#
&
$3
+allied
#
&
$3
+allure
#n.诱惑力, 魅力
&əˈljuə
$3
+amber
#n.琥珀(色)黄色交通信号灯
&ˈæmbə
$3
+ambiguity
#n.歧义模棱两可的意思
&ˌæmbiˈɡjuiti
$3
……
要求将前面+#&和$3 等字去掉,然后 输入格式 如下:
adjacent adj.邻近的 /əˈdʒeisənt/
advocacy n.支持, 拥护, 鼓吹 /ˈædvəkəsi/
affinity n.喜爱 /əˈfiniti/
……

我的设想是 这样 第一步 先把符号去掉 输出一个temp.txt
@echo off
setlocal enabledelayedexpansion
type Unicode > ANSI
for /F "delims=+#&$3 tokens=1" %%i in ('type NewWordBase.txt') do (
echo %%i >>temp.txt
)

在此处我非常的郁闷,因为文档是 Unicode 。for 命令不能读出 但是转化成 ANSI 后 又出现? 等 不能显示完全。期待高手给予帮助

第二步 从temp 文件中读取 各行 字符串 然后 按照 三列依次输出,但是在这里我失败了 我只能按照 标号输出
0 1 2
3 4 5
6 7 8
……
这样的话 就得不到我想要的结果
@echo off
setlocal enabledelayedexpansion
set /a n=0
for /f %%i in (temp.txt) do (
set "a!n!=%%i"
set /a n+=1
)
for /l %%i in (0,3,!n!) do (
set /a e=%%i
set /a f=!e!+1
set /a g=!e!+2
set  "h=!a!e!!"
set  "j=!a!f!!"
set  "k=!a!g!!"
echo !h! !j! !k!>>result.txt
)
type result.txt
我认为我处理这个问题的思路 可能比较复杂 但是我认为 理论上可以实现 那就是在 第二个for 中 无法将 a【i】的值 提出来 希望高手给与我解释 或是给我更好的解决方法 非常感谢

返回列表