Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批量删除默认分隔符中的空格_Windows_Batch File_Cmd - Fatal编程技术网

Windows 批量删除默认分隔符中的空格

Windows 批量删除默认分隔符中的空格,windows,batch-file,cmd,Windows,Batch File,Cmd,我想迭代一个类似csv的字符串:element;元素;元素;[...];元素 因此,我使用了这种类型的循环: for %%a in (%%l) do ( code ... ) 使用%%a我的元素和%%l我的行 这是可行的,但我有一个问题。我的元素中可以有一个空格,循环会自动计算一个元素和两个元素的空格。例如,如果我将05/05/2015 15:05:12作为一个元素,它将在两圈内解析,05/05/2015然后15:05:12。所以,我想删除空间作为拆分器。有可能吗?for使用空格、制

我想迭代一个类似csv的字符串:element;元素;元素;[...];元素

因此,我使用了这种类型的循环:

for %%a in (%%l) do (
     code ...
)
使用%%a我的元素和%%l我的行

这是可行的,但我有一个问题。我的元素中可以有一个空格,循环会自动计算一个元素和两个元素的空格。例如,如果我将05/05/2015 15:05:12作为一个元素,它将在两圈内解析,05/05/2015然后15:05:12。所以,我想删除空间作为拆分器。有可能吗?

for
使用空格、制表符、
=
和非中断空格(ASCII
0xFF
)作为分隔符(类似于
cmd
),除非它们包含在一对

我们可以利用这一点:

rem The following is placed inside your `for /F` loop:
set "LINE=%%l"
setlocal EnableDelayedExpansion
for %%a in ("!LINE:;=";"!") do (
    rem Use `%%~a` here to remove quotes.
)
endlocal
部分
“!行:=";"!“
之间括一行”
并用
替换每个分隔符;
”;“
,因此我们得到了一个被引用的
分隔项目的列表

例如,行…:

…变成这样:

因此,空格出现在一对
”之间,因此它不再被视为分隔符

请注意,此处必须使用,因为在同一代码块中写入和读取一个变量(
行),即您的
for/F%%l
循环。

for
使用空格、制表符、
=
和非中断空格(ASCII
0xFF
)作为分隔符(类似于
cmd
),除非它们包含在一对

我们可以利用这一点:

rem The following is placed inside your `for /F` loop:
set "LINE=%%l"
setlocal EnableDelayedExpansion
for %%a in ("!LINE:;=";"!") do (
    rem Use `%%~a` here to remove quotes.
)
endlocal
部分
“!行:=";"!“
之间括一行”
并用
替换每个分隔符;
”;“
,因此我们得到了一个被引用的
分隔项目的列表

例如,行…:

…变成这样:

因此,空格出现在一对
”之间,因此它不再被视为分隔符


请注意,这里必须使用,因为在同一代码块中写入和读取了一个变量(
LINE
),即您的
for/F%%l
循环。

使用
for/F
。使用“delims=;”,我迭代第一个元素,但不迭代其他元素……将
%l
存储在类似
集的中间变量中“LINE=%%l”
,然后执行此操作(假设已启用):
对于%%a in(“!LINE:;=”;“;”!”)执行(rem在此处使用
%%a`删除引号)`aschipfl解决方案有效,谢谢!使用
代替/F
。使用“delims=”;“,我迭代第一个元素,但不迭代其他元素…将
%%l
存储在中间变量中,如
设置“LINE=%%l”
,然后执行此操作(假设已启用):
对于%%a in(“!LINE:;=”;“;”!”)执行(rem在此处使用
%%a`删除引号。)`@aschipfl解决方案很有效,谢谢!谢谢,这是一个很好的代码解释!谢谢,这是一个很好的代码解释!
"element";"05/05/2015 15:05:12";"element"