CSVKIT:in2csv 批量转换 Windows 7

CSVKIT: in2csv Batch Convert on Windows 7

我已经在我的 mac 上使用了 CSVKIT,但我正在将我的工作流程转移到 PC 平台,以便其他人能够访问我的工作流程。我一直在使用的项目之一是用于转换固定宽度文件格式的 in2csv。在 mac 上,我将其设置为批处理:

for x in $(ls desktop/fixedwidth/*.txt); do x1=${x%%.*}; in2csv -f fixed -s desktop/ff/schema.csv $x > $x1.csv; echo "$x1.csv done."; done

我已经尝试将其转换为 PC 命令行选项,我可以从批处理文件运行,但我没有成功

for /r %%i in (*.csv) do c:\programdata\python\python36\scripts\in2csv -f fixed -s c:\users\username\desktop\in2cs_schema\test_schema.csv c:\users\username\desktop\test_files\*.txt > c:\users\username\desktop\test_files\*.csv %%i

如果我 运行 命令本身可以正常工作:

c:\programdata\python\python36\scripts\in2csv -f fixed -s [SCHEMA PATH] [FIXEDWIDTH PATH] > [OUTPUT PATH]

我觉得我遗漏了一些简单的东西,任何帮助将不胜感激!

这应该使用标准的 FOR 语句

FOR %i in (c:\users\%username%\desktop\test\*.txt) DO (in2csv -f fixed -s c:\users\%username%\desktop\schema\schema.csv c:\users\%username%\desktop\test\%~ni.txt > c:\users\%username%\desktop\test\%~ni.csv)

如果您需要运行此命令的批处理,那么您需要将 %%VARIABLE%% 添加到所有变量项;前任。 %%i 或 %%username%%.

此外,要仅获取作品中的文件名,您可以使用 %~n return 仅获取任何扩展名中的文件名。