从包含数千个文件

时间:2018-02-19 18:50:26

标签: file batch-file command-line automation

主要文件夹内容(示例)

apple.txt
art.txt
berry.txt
cherry.txt
coffee.txt
..,
...
...
zebra.txt

预期输出(子文件夹)

A
  apple.txt
  art.txt
B
  berry.txt
C
  cherry.txt
  coffee.txt
...
...
...
Z
  zebra.txt

如何通过Windows批处理文件完成此操作?

2 个答案:

答案 0 :(得分:2)

这样的事情可以解决问题:

@echo off
setlocal enabledelayedexpansion
for %%f in (*.txt) do (
    set "file=%%f"
    set "NewFolder=!file:~0,1!"
    If not exist "!NewFolder!" MD "!NewFolder!"
    echo Move "%%~dpf!file!" "%%~dpf!NewFolder!\" 
)
pause

经过测试,只需在echo

之前删除move命令即可

答案 1 :(得分:1)

这是我写的一个剧本。 基本上创建dir如果不存在,则搜索脚本根目录中的所有.txt文件,然后测试单词的第一个字母,然后将其复制到匹配的目录。

@echo off
setlocal enabledelayedexpansion
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
   if not exist %%i mkdir %%i
)
for %%f in (*.txt) do (
set "file=%%f"
set "var=!file:~0,1!"
echo move "%%~dpf!file!" "%%~dpf!var!\" 
)
pause

经过测试,只需删除倒数第二行echo之前的copy即可实际执行copy任务