Batch file 为什么Delimeter不起作用?
我试图用分隔符来划分文件,但它似乎用行来划分文件 这是我的密码:Batch file 为什么Delimeter不起作用?,batch-file,delimiter,Batch File,Delimiter,我试图用分隔符来划分文件,但它似乎用行来划分文件 这是我的密码: FOR /f "tokens=* delims=:" %%x in (SomeFile.txt) DO echo %%x 下面是SomeFile.txt: 1:2:3:4:5:6:7 8:9:10:11:12:13:14 ... 我希望是: 一, 2. 3. 4. 5. 但我得到的是原样的文件: 1:2:3:4:5:6:7 8:9:10:11:12:13:14 对此的解释是什么?for/f从文件中读取行,并根据分隔符集和
FOR /f "tokens=* delims=:" %%x in (SomeFile.txt) DO echo %%x
下面是SomeFile.txt:
1:2:3:4:5:6:7
8:9:10:11:12:13:14
...
我希望是:
一,
2.
3.
4.
5.
但我得到的是原样的文件:
1:2:3:4:5:6:7
8:9:10:11:12:13:14
对此的解释是什么?for/f从文件中读取行,并根据分隔符集和标记设置标记它们
由于您使用令牌=*,所有令牌都被分配给元变量%%x
最好是发布真实数据,因为解决方案可能会受到实际数据格式的影响,但为了产生结果,另一种方法是:
@回音
SETLOCAL
设置sourcedir=U:\sourcedir
设置文件名1=%sourcedir%\q44868366.txt
对于%filename1%中的/f delims=%%a,请调用:unclon%%a
后藤:EOF
:未克隆
设置行=%~1
对于%%t,在%line::=%DO ECHO%%~t
后藤:eof
我将变量filename1设置为包含测试数据的文件
在这里,每一行依次分配给%%a,然后由子程序unclon处理
子例程接受第一个要换行的参数,并用~modifier删除包含的引号
然后,变量行将每个冒号替换为,结果字符串本身用双引号括起来。结果是一系列带引号的字符串,由simple for then处理,依次将每个字符串分配给%%t,echo为每个字符串生成一行,其中包含的引号再次被~
…但很大程度上取决于所涉及的实际数据。除了不同数量的标记外,另一个问题完美地演示了如何使用分隔符将文本文件拆分为标记。您是否在键入/时阅读过帮助文本?进入命令提示窗口?