Board logo

标题: [文件操作] 批处理怎样批量移动文件? [打印本页]

作者: lxh623    时间: 2011-2-9 10:57     标题: 批处理怎样批量移动文件?

各位大虾,春节愉快!
我想求两个批处理。
第一个,我的E盘JP-XIN文件夹及其子文件夹,有很多文件txt或pdf格式。
文件名称示例:
US4807968-=polymer blends exhibiting nonlinear optical response
JP2010072594-optical member
US2007179243-=optical element-Konica
文本a列有E盘存在的、唯一的、英文词组命名的文件夹的名称,每行一个。
文本a示例:
nonlinear optical
optical element
………            。
我想可不可以这样,只要文件名同时含有文件夹名称两个词(无顺序和间隔要求),就移动到该文件夹。每行(文件夹名),依次进行移动。[说明:文本a可以带有路径,我担心问题复杂,表达不清楚,故意没有用带路径的。]
第二个,文本a是每行一个单词,一样的移动文件。相对要简单一点。不知道能不能限定文件夹名是一个词,而不是两个词。(这一点倒是可以自己事先纠正,重新命名与词组命名重叠的文件夹。)

信息爆炸了,批处理来了,顿时,平静平安了。
谢谢您!

[ 本帖最后由 lxh623 于 2011-2-9 16:33 编辑 ]
作者: we6540    时间: 2011-2-10 19:21

文字表达简明一些!!不知到你说什么
作者: CrLf    时间: 2011-2-10 20:40

以文件夹名为关键词筛选(以文件夹名中的半角空格或逗号来区分关键词):
  1. for /d %%a in (*) do (
  2. for %%b in (%%a) do (
  3. for /f "delims=" %%c in ('dir /a-d /b *%%b*') do (
  4. move "%%c" "%%a"
  5. )))
复制代码

作者: CrLf    时间: 2011-2-10 20:44

发帖请言简意赅,多则乱,直指中心就行了。大家都很忙,没耐心看无关痛痒的内容
作者: lxh623    时间: 2011-2-10 23:42

原帖由 zm900612 于 2011-2-10 20:40 发表
以文件夹名为关键词筛选(以文件夹名中的半角空格或逗号来区分关键词):for /d %%a in (*) do (
for %%b in (%%a) do (
for /f "delims=" %%c in ('dir /a-d /b *%%b*') do (
move "%%c" "%%a"
)))

E盘JP-XIN和E盘,怎么批处理里面看不到。文本a呢?
关键词更多的不在一起。
谢谢您!
曾经在这里求到一个批处理,有点类似,但不完全一样。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=*" %%a in (a.txt) do set /a n+=1&set str!n!=%%a
  3. for /f "delims=*" %%a in ('dir /s/b/a-d E:\JP-XIN\*.pdf E:\JP-XIN\*.txt  ^| findstr /i "%str1%"^|findstr /i "%str2%"') do move "%%a" D:\pdf\
复制代码

[ 本帖最后由 lxh623 于 2011-2-10 23:48 编辑 ]




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2