命令行中的参数过多-“更多”命令

时间:2019-03-01 20:09:36

标签: csv batch-file

我遇到了一个批处理文件的奇怪问题,该批处理文件将多个CSV文件合并为一个。 This是我正在使用的文件。

它将仅获取目录中倍数的CSV文件之一,并将其​​内容复制到new.csv文件。 然后,它为目录中的每个剩余文件返回“命令行中的参数过多”。

此文件在具有相同操作系统的其他系统上可以很好地工作。

它可以在我的系统上运行,直到我重新运行它并且没有首先删除输出文件。这导致new.csv.tmp在目录中生成,而不是最终的“ new.csv”,因为它无法重命名。

有人知道发生了什么吗?我尝试重新启动,删除所有内容并从头开始。在该特定系统上似乎永久损坏。

一些搜索发现more命令可能出错。 This question is similar

1 个答案:

答案 0 :(得分:0)

我以前遇到过类似的问题。

我记得我使用的方法似乎已经解决了它,它是使用命令帮助中的实际语法(注意STDIN重定向)

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename

赞:

@If Not Exist *.csv Exit /B
@Set "_=1"&(For /F Delims^=^ EOL^= %%A In ('Where/F .:*.csv')Do @If Defined _ (
    More<%%A&Set "_=")Else More +1<%%A)>"new.tmp"&Ren "new.tmp" "new.csv"

或者,您可以尝试显示的其他语法(您似乎正在使用此语法,但没有使用/E选项)

MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]

赞:

@If Not Exist *.csv Exit /B
@Set "_=1"&(For /F Delims^=^ EOL^= %%A In ('Where/F .:*.csv')Do @If Defined _ (
    More /E %%A&Set "_=")Else More /E +1 %%A)>"new.tmp"&Ren "new.tmp" "new.csv"