我在这里有一个批处理文件:当我按下它时,StackOverflows“代码”窗口不显示任何内容,所以希望它不会破坏它:
@echo off
echo Moving files to respective folders.
DIR C:\ArcConverted\adam\shapefiles\ /A:-D /B > C:\ArcConverted\adam\filelist.txt
echo File start > C:\ArcConverted\adam\output.txt
FOR /f %%a IN (C:\ArcConverted\adam\filelist.txt) DO (
FOR /f "tokens=1 delims=_" %%b IN ('%%a') do echo A:%%a B: %%b
IF NOT EXIST C:\ArcConverted\adam\shapefiles\%%~na\ mkdir C:\ArcConverted\adam\shapefiles\%%~na\
echo Moving file %%a into C:\ArcConverted\adam\shapefiles\%%~na\
move C:\ArcConverted\adam\shapefiles\%%a C:\ArcConverted\adam\shapefiles\%%~na\%%b
)
pause
我在 C:\ArcConverted\adam\shapefiles 中有新的前向转换 ArcGIS shapefiles 文件,它们的文件名现在是:
- thisthing_arc.adf
- thisthing_tic.adf
- thisthing_shp.shp
- thatthing_shp.shp
... 等等。
我有 83 个这些不同的对象集,每个对象集大约有 16 个文件。我正在尝试制作一个批处理脚本(是的,它必须是批处理的),它读取文件夹中的所有文件,将其放入文件中,然后读取文件列表并为每个文件创建文件夹,如果你采取删除 _ 之后的所有内容(从转换器程序将 _ 添加到其中)。我的脚本虽然不起作用。第二个 for 循环打开每个文件并读取所有内容并打印出数十万行。我似乎无法弄清楚如何使用批处理对文件名进行字符串定界(我不关心文件中的内容)。
概括:
我有所有属于同一个文件夹的文件集被扔到同一个文件夹中。我正在尝试以编程方式(通过批处理)从文件名(出现在_之前的所有内容)中获取集合的名称,创建该文件夹,然后将文件移动到该文件夹中。随着循环的进行,任何也属于该文件夹的文件也会被移到那里。
我是否朝着正确的方向前进?谢谢。