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

[文件操作] 求助批处理根据照片名复制到子文件夹中

[复制链接]
发表于 2021-6-19 08:57:33 | 显示全部楼层 |阅读模式
我现在有一个文件夹里的照片名为350921-00634-N(1),350921-00634-N(2)   想要批量复制到另一个文件夹下有相同编号的文件夹下的一个子文件夹中   求大神帮我写一个批量处理的BAT
发表于 2021-6-19 10:56:48 | 显示全部楼层
回复 1# tangyangwen


    请把照片目前所在完整路径、需要复制到的目标子文件夹的完整路径分别发出来看一下
发表于 2021-6-19 12:44:48 | 显示全部楼层
把文件移动到和文件同名的文件夹中,一个文件夹放一个文件?
 楼主| 发表于 2021-6-19 16:42:32 | 显示全部楼层
回复 2# Batcher


    照片所在的文件夹路径:C:\Users\Administrator\Desktop\附件\调查表\  照片所在文件夹里有命名过的照片,如:350921-00634-1070(1),350921-00634-1070(2) ,350921-00634-1071(1),350921-00634-1071(2) ……  照片要复制到的路径:C:\Users\Administrator\Desktop\附件\350921-00634-1070……\现场照片      我想把同一编码的(1)(2)  的照片复制到同样编码的文件夹下的现场照片的文件夹中
 楼主| 发表于 2021-6-19 16:43:29 | 显示全部楼层
回复 3# newswan    
对的
发表于 2021-6-19 17:34:43 | 显示全部楼层
powershell

  1. $pathSour = $env:USERPROFILE + "\Desktop\d"
  2. $pathDest = $env:USERPROFILE + "\Desktop\c"

  3. get-childitem -path $pathSour | foreach-object {
  4.     if ($_.basename -match "^[-0-9]+")
  5.     {
  6.         $p = $pathDest + "" + $matches[0] + "\现场照片"
  7.         $p
  8.         if (-not (test-path $p))
  9.         {
  10.             New-Item -Path $p -ItemType Directory
  11.         }
  12.         Move-Item $_ $p
  13.     }
  14. }

复制代码
 楼主| 发表于 2021-6-19 17:48:38 | 显示全部楼层
回复 6# newswan


    为啥双击后无反应呢?
发表于 2021-6-19 18:19:31 | 显示全部楼层
回复 7# tangyangwen


    添加下面一行到第一行,保存为 name.bat
  1. @powershell -Command "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & exit /b
复制代码
或者保存为 name.ps1
执行
  1. powershell -f name.ps1
复制代码
 楼主| 发表于 2021-6-19 18:37:39 | 显示全部楼层
回复 8# newswan
还是不行
发表于 2021-6-19 19:23:48 | 显示全部楼层
回复 9# tangyangwen


    没运行过 powershell ?
参考 https://blog.csdn.net/jinhaijing/article/details/85004126
发表于 2021-6-19 20:34:07 | 显示全部楼层
test.bat,ANSI编码
  1. @echo off
  2. cd /d "%USERPROFILE%\Desktop\附件\调查表"
  3. for /f "tokens=1,2 delims=()" %%i in ('dir /b "*(*).jpg"') do (
  4.         if exist "..\%%i" (
  5.                 echo copy /y "%%i(%%j).jpg" "..\%%i"
  6.                 copy /y "%%i(%%j).jpg" "..\%%i"
  7.                 echo ----------------------------------
  8.         )
  9. )
  10. pause&exit
复制代码
 楼主| 发表于 2021-6-19 21:36:32 | 显示全部楼层
回复 11# went

谢谢大神     可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 18:32 , Processed in 0.032802 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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