标题: [其他] 批处理如何根据文件名移动文件到指定文件夹? [打印本页]
作者: internetfox 时间: 2010-12-23 13:52 标题: 批处理如何根据文件名移动文件到指定文件夹?
比如:e:\fcw有文件名为g12305,f11304,a10305,b09305文件,要求:g12305移动到12的文件夹,f11304移动到11的文件夹,a10305移动到10的文件夹,b09305移动到09的文件夹,, 并且如果文件已经存在要不提示覆盖,求批处理代码,谢谢!
作者: yhcbird 时间: 2010-12-23 14:08
应该是截取字符串然后move就可以了。可以参考孤星哥给我写的这段代码@echo off&setlocal enabledelayedexpansion
sed "s/[^0-9-]/\n/g" XFSearchList[1].txt>han.ye
(for /f %%a in (han.ye) do (
set a=%%a
if "!a:~0,10!"=="3303221010" if not "!a:~12!"=="" if not defined #!a:~-5! (
set #!a:~-5!==
md !a:~-5!
start "" "http://10.33.100.15/HJXF/admin/XFHuiFuDetailPrint.aspx?serialnum=3303221010!a:~-5!"
ping -n 15 127.1
start "" f10.vbs
ping -n 15 127.1
move ..\回复打印单.files .\!a:~-5!
move ..\*.htm .\!a:~-5!
)))
ping -n 15 127.1
taskkill /im iexplore.exe /f
pause
del /q han.ye
作者: internetfox 时间: 2010-12-23 14:30
看不懂啊,给个实例好吧,@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /a-d') do (
set "x=%%~a"
set x=!x:~1,2!
move "%%~a" f:\!x!\
)
pause
批处理只能放在当前目录,
作者: internetfox 时间: 2010-12-23 14:53
,@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /b /a-d "f:\111*.*"') do (
set "x=%%~a"
set x=!x:~1,2!
move "%%~a" f:\!x!\
)
pause
为什么这样不行呢,
作者: hanyeguxing 时间: 2010-12-23 15:09
原帖由 internetfox 于 2010-12-23 13:52 发表
比如:e:\fcw有文件名为g12305,f11304,a10305,b09305文件,要求:g12305移动到12的文件夹,f11304移动到11的文件夹,a10305移动到10的文件夹,b09305移动到09的文件夹,, 并且如果文件已经存在要不提示覆盖,求批处理代码,谢 ...
- @echo off&setlocal enableDelayedExpansion
- for %%a in ("e:\fcw\*") do (
- set a=%%~na
- move "%%a" "f:\指定目录\!a:~1,2!"
- )
复制代码
以上为直接覆盖
如果不覆盖而跳过,则改成:- @echo off&setlocal enableDelayedExpansion
- for %%a in ("e:\fcw\*") do (
- set a=%%~na
- echo n|move /-y "%%a" "f:\指定目录\!a:~1,2!"
- )
复制代码
作者: internetfox 时间: 2010-12-23 15:14 标题: 问题解决,谢谢
还是高手厉害,呵呵~~~~
作者: yhcbird 时间: 2010-12-23 15:17
@echo off&setlocal enableDelayedExpansion
for %%a in ("e:\fcw\*.*") do (
set a=%%~na
md !a:~1,2!
move "%%a" !a:~1,2!
)
倒!孤星哥在啊。孤星哥我问下,vbs能实现鼠标左键的点击功能吗?。。。
[ 本帖最后由 yhcbird 于 2010-12-23 15:24 编辑 ]
作者: lvsehuaxue 时间: 2010-12-23 15:36
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /b /a-d e:\fcw\*.*') do (
- set v=%%~na
- set v=!v:~1,2!
- for /l %%b in (1 1 99) do (
- set v1=0%%b
- set v1=!v1:~-2!
- if !v! equ !v1! (
- md !v1!\
- move %%~nxa !v1!\
- )
- )
- )
- pause
复制代码
作者: internetfox 时间: 2010-12-24 11:21
如果我移动到映射盘符,有时会移动不过去,先要把映射盘符打开一下后才能移动,是不是要加什么命令
作者: Batcher 时间: 2010-12-24 12:53 标题: 回复 9楼 的帖子
可以试试用start或者explorer命令打开映射盘符
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |