找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 86084|回复: 20

[文件操作] [已解决]在末级文件夹里面建立文件夹和批量剪切文件到跟目录

[复制链接]
发表于 2019-7-3 19:34:15 | 显示全部楼层 |阅读模式
第一个问题:
D:\分件  文件夹下有N个子目录

要求在最末级文件夹里面建立一个:“1”的文件夹  并把文件拷贝到“1”里面

第二个问题
经过一些处理后,

需要把子文件夹下的所以JPG拷贝到“人名”(比如说样例中的:张三、李四)相应根目录下,并去掉文件名最前面的 人名-

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2019-7-4 09:47:35 | 显示全部楼层
第一个问题,创建 1 文件夹后,需要把哪里的文件拷贝到 1 里面?
可以这样创建文件夹:
  1. PowerShell "forEach($a In (dir D:\分件 -Recurse | ?{$_ -is [IO.DirectoryInfo] -and ![IO.Directory]::GetDirectories($_.FullName).Count})){md ($a.FullName+'\1')}"
复制代码

评分

参与人数 1技术 +1 收起 理由
001011 + 1 ok 还差一步移动图片

查看全部评分

 楼主| 发表于 2019-7-4 09:49:17 | 显示全部楼层
回复 2# WHY
需要把文件拷贝到里面去
发表于 2019-7-4 09:52:42 | 显示全部楼层
第二个问题:
  1. @echo off
  2. for /d %%i in ("D:\分件\*") do (
  3.     pushd "%%i"
  4.     for /f "tokens=1* delims=-" %%j in ('dir /b /s "%%~nxi-*.jpg"') do (
  5.         copy "%%j-%%k" "%%i\%%k" 2>nul
  6.     )
  7.     popd
  8. )
  9. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
001011 + 1 高效 准确

查看全部评分

 楼主| 发表于 2019-7-4 09:58:06 | 显示全部楼层
回复 4# WHY
文件名是这两种情况
张三-3-7-084.jpg
张三-1-1-001.jpg
张三-4-1-1-1001.jpg
发表于 2019-7-4 10:07:18 | 显示全部楼层
回复 3# 001011


        需要拷贝的文件位于什么地方?总不会在天上吧?
发表于 2019-7-4 10:08:06 | 显示全部楼层
回复 5# 001011


    你试过没有?
 楼主| 发表于 2019-7-4 10:09:47 | 显示全部楼层
回复 6# WHY

在每个末级文件夹里面建立“1”的文件夹   再把文件拷贝到“1”里面啊
 楼主| 发表于 2019-7-4 10:11:15 | 显示全部楼层
回复 7# WHY
第一个问题  建立文件夹OK   就是没有拷贝文件
第二个问题      OK
感谢啊  感谢
发表于 2019-7-4 10:23:02 | 显示全部楼层
回复 8# 001011


    在每个末级文件夹里面建立“1”的文件夹   再把哪个文件拷贝到“1”里面啊

评分

参与人数 1技术 +1 收起 理由
001011 + 1 感谢

查看全部评分

 楼主| 发表于 2019-7-4 10:26:51 | 显示全部楼层
回复 10# Batcher
建立“1”的文件夹前

建立“1”的文件夹后,并把里面的图拷贝到1里面
发表于 2019-7-4 11:01:02 | 显示全部楼层
回复 11# 001011


    你确认一下是【移动】文件还是【拷贝】文件?
 楼主| 发表于 2019-7-4 11:09:44 | 显示全部楼层
回复 12# Batcher


    【移动】
 楼主| 发表于 2019-7-4 14:28:14 | 显示全部楼层
回复 12# Batcher
找历史帖  翻到了您的代码  稍微改动  OK了   谢谢啊
@echo off
for /f "delims=" %%i in ('dir /b /s /a:d ') do (
    md "%%i\1"
    move "%%i\*.jpg" "%%i\1\"
)
发表于 2019-7-4 14:33:13 | 显示全部楼层
回复 11# 001011


    你的意思是,把最末级目录里面的 jpg 图片移动到新建的 1 文件夹里面,是这样吗?
  1. PowerShell "forEach($a In (dir D:\分件 -Recurse | ?{$_ -is [IO.DirectoryInfo] -and ![IO.Directory]::GetDirectories($_.FullName).Count})){md ($a.FullName+'\1'); mv ($a.FullName+'\*.jpg') ($a.FullName+'\1\')}"
复制代码

评分

参与人数 1技术 +1 收起 理由
001011 + 1 是的 是的 我可能没有表达清楚 谢谢啊

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:30 , Processed in 0.036017 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表