Batch file csv文件的奇怪问题

Batch file csv文件的奇怪问题,batch-file,Batch File,我的csv文件有一个很奇怪的问题。 我试图在第一次昏迷前将数据作为输出,它适用于除一个文件之外的所有文件 就是这个(有不同的别名和名字) 因此,使用此代码: @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION for /f "tokens=1 delims=," %%A in (Liste_mailboxes.txt) do ( set var1=%%A echo !var1! pause ) pause 它甚至不会进入循环 用这个文件

我的csv文件有一个很奇怪的问题。 我试图在第一次昏迷前将数据作为输出,它适用于除一个文件之外的所有文件

就是这个(有不同的别名和名字)

因此,使用此代码:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

for /f "tokens=1 delims=," %%A in (Liste_mailboxes.txt) do (
    set var1=%%A
    echo !var1!
    pause
)
pause
它甚至不会进入循环

用这个文件就行了

jsmith1,23/10/2017 20:58 
jsmith2,23/10/2017 21:00 
jsmith3,23/10/2017 20:59 
jsmith4,23/10/2017 21:15 
jsmith5,23/10/2017 21:26 
jsmith6,23/10/2017 21:05 
jsmith7,23/10/2017 21:47 
你知道我做错了什么吗?谢谢你,很抱歉英语不好


编辑:我发现了更奇怪的事情,如果我将文件中的内容复制到一个新的文件中,它就会工作。但是如果我复制了它,它就不会工作了。我真的不知道这个文件有什么问题。

我想,您的第一个文本文件是Unicode编码的。某些批处理命令(如
for
)确实存在此问题<代码>类型将编码转换为Ansi“动态”,因此您可以:

@echo off 
setlocal enabledelayedexpansion
for /f "tokens=1 delims=," %%A in ('type Liste_mailboxes.txt') do (
    set var1=%%A
    echo !var1!
    pause
)
注意:如果您没有将任何内容添加到
var
,您可以使用
%%A

@echo off 
setlocal enabledelayedexpansion
for /f "tokens=1 delims=," %%A in ('type Liste_mailboxes.txt') do (
    echo %%A
    pause
)

你确定文件编码不是UTF-8吗?我刚刚发现它是utf16的谢谢,我发现它是utf16的,我必须将它编码到ansi
@echo off 
setlocal enabledelayedexpansion
for /f "tokens=1 delims=," %%A in ('type Liste_mailboxes.txt') do (
    echo %%A
    pause
)