0

我想使用批处理文件将它们放入默认文件夹,但帐户名在文件夹中间。有可以在 dos 命令提示符下使用的脚本吗?

888123AA.pdf  
888123BB.pdf  
888123CC.pdf  
777456AA.pdf  
777456BB.pdf  
777456CC.pdf 

默认文件夹:

999-888123-03
666-777456-01
4

2 回答 2

1
@echo off
setlocal EnableDelayedExpansion

rem Process all .pdf files
for %%a in (*.pdf) do (
   rem Get just the file name, ie: "888123AA"
   set fileName=%%~Na
   rem Using the file name minus two last chars, ie: "888123"
   rem get the default folder with that name
   for /D %%b in (*-!fileName:~0,-2!-*) do (
      rem And copy the file to that folder
      copy "%%a" "%%b"
   )
)
于 2013-06-06T10:58:34.030 回答
-1

除了 UNIX shell 之外,我不记得有任何明显的方法可以做到这一点......也许得到 MSYS 并使用那个(过时的)bash 来帮助?

这是一个 bash 脚本,可以在您从 MSYS 安装 bash 后使用(或者您可以使用 Linux 机器对其进行排序 - Ubuntu 不大于 800MB,并且可以作为 LiveCD 运行而不会干扰您当前的 Windows 系统,并且 LiveCD 可以兼作需要时使用系统保护程序。:-)

#!/bin/bash
for each in ./*; do
    if [ -d $each ]; then # Only folders are minded.
        # Extract the second part of the folder name.
        ACCOUNT_NAME=`echo $each | sed "s/\\-/\n/" | head -n 2 | tail -n 1`
        cp -v ./$ACCOUNT_NAME*.pdf $each
    fi
done
于 2013-06-06T10:14:04.117 回答