- 帖子
- 32
- 积分
- 62
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2017-3-29
|
本帖最后由 pcl_test 于 2017-3-31 14:34 编辑
回复 3# ShowCode
感谢帮助,我这边执行该代码后,目标文件均已经移动了,非常感谢你,写的代码错落有致,让人一目了然,而且将特别的地方标红,让我学会举一反三。
但还是想请教一下;
第5行
for /f %%a in ('dir /b /ad ^| findstr "^..-!str:~2,4!#$"') do (
语句中的 findstr "^..-!str:~2,4!#$" 应该是寻找移动至目标文件夹,findstr对应字符意义如下;
. 通配符: 任何字符
* 重复: 以前字符或类出现零或零以上次数
^ 行位置: 行的开始
$ 行位置: 行的终点
我尝试改为将“AB0001#-5_调研报告.pdf”“AB0003#-5_对象研究报告.pdf”“AB0005#-5_竞争力报告.pdf” 对应 "A0001#""B0003#""C0005" 文件夹,
for /f %%a in ('dir /b /ad ^| findstr "^.!str:~2,4!#$"') do (
这样实验成功,但是我想改为改为将“AB0001#-5_调研报告.pdf”“AB0003#-5_对象研究报告.pdf”“AB0005#-5_竞争力报告.pdf” 对应 "0001#""0003#""0005" 文件夹,
for /f %%a in ('dir /b /ad ^| findstr "^!str:~2,4!#$"') do (
该批处理却不成功,文件被移动至根目录,我理解通配符删除了,那就应该从第一个字符开始对应了,为什么不行,请教一下,如何更改?
. |
|