我从CNC机器收到了数千个要分类的文件。我还有一个索引列出了所有文件及其类别。该列由制表符分隔。以下是索引文件内容的示例:
111.MAZ AAA FGH
222.MAZ BBB IYU
333.EIA CCCDFEW
444.MAZ AAAWER BB BBBA
555.EIA AAA 123
666.M6M DDD234
777.PBD AAA
....... .....
因此,我需要做以下事情:
for / f%d in(list.txt)do md%d
我不确定如何完成第二项任务。有人能指出我正确的方向吗?
经过一百次的运行和失败,最后,由于@Stephan和@JosefZ,我已成功将所有这些文件分类到各自的文件夹中。我稍微调整了一下代码,以便我只创建文件存在的那些代码。
for /F "tokens=1,*" %%G in (index.txt) do (
IF EXIST %%G (
md "%%~H" 2^>NUL
move "%%~G" "%%~H"
)
)
度过美好的一天!
答案 0 :(得分:1)
不需要Excel。您可以使用批处理解析索引:
for /f "tokens=1,2 delims=<TAB>" %%a in (index.txt) do (
REM create Folder, ignore "Folder exists" error:
echo md "%%b" 2>nul
REM move the file:
echo move "%%a" "%%b"
)
注意:而不是<TAB>
在Texteditor中插入Tabulator(记事本?)
如果输出正常,请删除echo
。
答案 1 :(得分:1)
从命令行开始,假设您的index.txt
恰好包含两个以制表符分隔的列
文件名 标签 类别名称
操作md
和move
命令仅用于调试目的;在调试之后删除所有echo
:
for /F "tokens=1,*" %G in ( index.txt ) do @echo md "%~H" 2^>NUL & echo move "%~G" "%~H"
资源(必读):
%~G
等特殊页面)Command Line arguments (Parameters) &
,2>1
等特殊页面)Redirection