返回列表 发帖

[文件操作] 批处理怎样移动文件到第一层文件夹?

本帖最后由 comicguests 于 2012-6-27 15:13 编辑

下面的代码能移动文件到根目录,但我想移动到第一层文件夹...应该如何修改呢?
感谢关注!!
@echo off
echo 移动文件中...
for /f "delims=" %%i in ('dir *.* /a-d /s /b') do (
    if not "%%~dpi"=="%~dp0" call :movefile "%%i"
)
echo 移动文件完成!
exit
:movefile
if exist "%~dp0%~nx1" set "n="&goto renfile
move %1 "%~dp0">nul 2>nul||(attrib -r -h -s %1& move %1 "%~dp0">nul)
goto :eof
:renfile
set/a n+=1
if exist "%~dp0%~n1(%n%)%~x1" goto renfile
move %1 "%~dp0%~n1(%n%)%~x1">nul 2>nul||(
attrib -r -h -s %1& move %1 "%~dp0%~n1(%n%)%~x1">nul)
goto :eofCOPY
嗯,1楼所言甚是,那么,将e:\a\b\c\*里的文件,全移到e:\a里(包含b、c中全部文件)

回复 3# apang


    嗯,这点没错,但我要处理的并不光是a文件夹,还有aa、aaa...

TOP

回复 4# CrLf


    感谢指教,可a、b、c只是举例子,因为文件夹时常变换(下载文件夹,总有不少包含很多子文件夹的文件夹,所以名称不固定),所以不能指定绝对路径...

TOP

回复 7# FOR


    感谢回复,但一闪而过...我是win7旗舰32位...

TOP

回复 8# Batcher


    语文学的不是很好,见谅...
大概是e:\*\*\*,将后两个*里的内容移动到e:\*里

TOP

回复 11# Batcher


    惭愧,我连菜鸟都算不上...十分抱歉

TOP

回复 12# FOR

感谢,的确是按照我的想法执行的!!
可运行之后才发现,我的想法有个漏洞,我的下载文件夹为F:\download\,当我在F:\download中运行批处理后,F:\download中子文件夹里的内容都移到F:\download里了...
可不可以把批处理所在文件夹当做第一文件夹,
第一文件夹(批处理所在)\第二文件夹\第三文件夹\...
将第三文件夹里的全部内容移到第二文件夹中?
思维出现这么大漏洞真是对不起....

TOP

回复 15# forfiles


    试了一下,原来是这样,感谢!!

TOP

回复 17# FOR
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
移动了         1 个文件。
请按任意键继续. . .COPY
运行后显示以上内容,但文件实际未移动...
但感谢帮助!!

TOP

回复 19# FOR


   没有,试了一下,还是不行...

TOP

回复 22# powerbat
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
请按任意键继续. . .COPY
汇报结果!
执拗么...我倒是感觉自己性格不好...

TOP

回复 24# FOR


    多次劳烦您,真是十分感谢,但还是只显示移动,但没有移动...是我系统问题么?
win732位旗舰版
ps:实在不行就只能放弃了...

TOP

所以我就怀疑是不是系统的个别差异...

TOP

返回列表