CMD我需要移动某些目录中的某些文件[关闭]

问题描述 投票:1回答:1

好吧,这有点简单..我有很多文件与某些字符串,我想使用.bat脚本移动到某些文件夹

这是一个例子

ABCD_Afile_1111-11111111_00001.txt
ABCD_Bfile_2222-22222222_00001.txt
ABCD_Cfile_3333-33333333_00001.txt
ABCD_Dfile_4444-44444444_00001.txt

我想像下面这样移动这些文件

folder Afolder_1111-11111111  
ABCD_Afile_1111-11111111_00001.txt



Folder Bfolder_2222-22222222
ABCD_Bfile_2222-22222222_00001.txt



folder CFolder_3333-33333333
ABCD_Cfile_3333-33333333_00001.txt



folder DFolder_4444-44444444
ABCD_Dfile_4444-44444444_00001.txt

脚本应按文件字符串1111-1111111查找文件夹,并将该文件移动到所需的文件夹。

我自己做了一个批处理脚本..但它不是我想要的......

例如

move D:/x/fikename.txt foldernamehere

我必须手动输入文件夹名称,这对我来说是个问题。

谢谢@stephan

for %%f in (X\:x\*.txt) do ( for /f "tokens=3 delims=_" %%a in ("%%~nf") do ( for /d %%x in (X:\x\*%%a) do ( ECHO move "%%~ff" "%%x\" ) ) )

这个代码有效

file batch-file cmd move operation
1个回答
0
投票

假设您的所有文件都遵循以下语法XXXX_Yfile_0000-00000000_00000.txt

@echo off
for %%f in (X:x\*.txt) do (
  for /f "tokens=3 delims=_" %%a in ("%%~nf") do (
    for /d %%x in (X:\x\*%%a) do (
      ECHO move "%%~ff" "%%x\"
    )
  )
)

如果输出看起来正确,则删除ECHO

© www.soinside.com 2019 - 2024. All rights reserved.