[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何根据输入文件名的部分字符串来查找文件并将查找的文件移动到指定文件夹?

如何能编写一个能接收输入参数,并将输入参数作为条件,在以上这些文件名第17位开始查找。找到相关文件并剪切至【 ./输入参数/】  文件夹下。
例如:源文件位置如图:D:\test\

执行批处理后的效果如图:E:\test\【输入参数】\

请各位高手指教。谢谢
1

评分人数

  1. @echo off&setlocal enabledelayedexpansion&(set /p files=输入查询文件名:)&for /f "delims=" %%1 in ('dir/b/a-d *%files%*.sql')do set n=%%~n1&set p=!n:~18!&(if not exist !p! call md !p!)&move %%1 !p!\%%~nx1
复制代码
1

评分人数

TOP

本帖最后由 lixiyou 于 2016-4-23 23:22 编辑

回复 2# Nsqs

非常感谢您的解答。现在还有个问题需要请教。输入参数例如: 201406 。将我查到的数据放入 E:\test\201406 这个文件夹下,将怎样实现?

TOP

回复 3# lixiyou


    move %%1 e:\test\!p!\%%~nx1
改一下

TOP

回复 4# Nsqs
感谢你!
根据你提供的代码【@echo off&setlocal enabledelayedexpansion&(set /p files=input file&for /f "delims=" %%1 in ('dir/b/a-d *%files%*.sql')do set n=%%~n1&set p=!n:~17!&(if not exist e:\test\!p! call md e:\test\!p!)&move %%1 e:\test\!p!\%%~nx1】 的出来的结果如下图:

如果能得到 输入参数:201406,输出的文件夹也是 【201406】并把*201406*的相关文件放入,那就太感谢了!
最终希望生成 一个文件夹 【201406】同时移动6个201406相关的文件

TOP

本帖最后由 Nsqs 于 2016-4-24 14:25 编辑

回复 5# lixiyou
  1. @echo off&setlocal enabledelayedexpansion&(set /p files=输入查询文件名:)&for /f "delims=" %%1 in ('dir/b/a-d *%files%*.sql')do set n=%%~n1&set p=!n:~18!&(if not exist "!files!\" call md !files!)&move "%%1" "!files!\%%~nx1"
复制代码

TOP

回复 6# Nsqs

问题已经解决了。感谢你的帮助和支持!

现将解决代码贴上:

@echo off
set "pth=d:\test"
set/p name=input file:
for /f "delims=" %%a in ('dir /a-d /b /s "%pth%\*%name%*.sql"') do (
  set "p=%%~dpa"
  if not exist E:\test\%name%\ call md E:\test\%name%\
  call copy "%%a" "%%p:%pth%=e:\test\%name%\%%" /y
)
pause
1

评分人数

TOP

回复 7# lixiyou
  1. @echo off
  2. set "fd1=D:\test"
  3. set "fd2=E:\test"
  4. set/p str=查找字符串:
  5. for /r "%fd1%" %%a in ("*%str%*.sql") do (
  6.     if not exist "%fd2%\%str%\" md "%fd2%\%str%\"
  7.     copy "%%a" "%fd2%\%str%\" /y
  8. )
  9. pause
复制代码

TOP

返回列表