标题: [文件操作] 批处理怎样判断文件夹内2个文件,如果只有一个A或B则删除文件夹,保留文件 [打印本页]
作者: lt6657 时间: 2015-12-9 16:27 标题: 批处理怎样判断文件夹内2个文件,如果只有一个A或B则删除文件夹,保留文件
请教高手!
问题:
1、将相同名文件导入同名文件夹,并保留不同名文件;
2、判断文件夹内多个文件(jpg和xlsx),如果只有一个A或B则删除文件夹,保留文件。
作者: 回家路上 时间: 2015-12-9 16:49
路过,就想问一下,生成那么的文件的测试脚本是你自己写的吗?O(∩_∩)O!?
作者: CrLf 时间: 2015-12-9 17:23
回复 2# 回家路上
我也好奇这个问题
作者: 回家路上 时间: 2015-12-9 19:02
写一下吧- @echo off & setlocal enabledelayedexpansion
- set names=赵,钱,孙,李
- set testDir=%~dp0$test$
-
- rd /s /q "%testDir%" 2>nul& md "%testDir%">nul
- pushd %testDir%
- for %%n in (%names%) do (
- rem for /l %%i in (10=-1) do md "%%n%%i" 2>nul
- set /a rand=!random!%%15
- for /l %%i in (!rand!=-1) do cd.>"%%n%%i.jpg"
- set /a rand=!random!%%15
- for /l %%i in (!rand!=-1) do cd.>"%%n%%i.xlsx"
- )
- popd
-
- pause & exit /b
复制代码
- @echo off & setlocal enabledelayedexpansion
- :: 姑且认为如果文件成对了,就算文件夹没有,就创建一个,然后把一对放进去
-
- set testDir=%~dp0$test$
-
- pushd "%testDir%"
- for /f "delims=" %%i in ('dir /a-d /b') do (
- if "!p!"=="%%~ni" (
- if not exist "%%~ni\" md "%%~ni\" >nul
- move /y "!pre!" "%%~ni\"
- move /y "%%i" ""%%~ni\"
- )
- set pre=%%i
- set p=%%~ni
- )
- popd
-
- pause & exit /b
复制代码
作者: lt6657 时间: 2015-12-10 07:58
for /f "delims=" %%a in ('dir /o-n /b /ad') do move "%%a*.jpg" "%%a\"
这个可以实现,但不完善。
原来只是需要导入图片和excel,但出现了问题!
这个
@echo off
for /f "delims=" %%i in ('dir /b /a-d *.jpg *.xls *') do (
if exist "%%i" (
md "%%~ni\"
move /y "*%%~ni*" "%%~ni\"
)
)
作者: lt6657 时间: 2015-12-10 08:13
非常感谢你的支持!
我测试发现的问题:
你的代码还能麻烦修改吗?
作者: 回家路上 时间: 2015-12-10 12:59
呵呵,虽然你的截图很霸气,但是我仍然不明确你的需求。
建议,以后能用文字描述的不要上图片,图片占空间大,废论坛资源。更何况不配文字说明的图片。
只好从上到下,加上你给出的脚本猜测了。- @echo off & setlocal enabledelayedexpansion
- :: 姑且认为如果文件成对了,就算文件夹没有,就创建一个,然后把一对放进去
-
- set testDir=%~dp0$test$
-
- pushd "%testDir%"
- ::-----------原有的脚本加上两个--------------------start
- :: 将原有文件夹中所有文件移到根目录
- for /f "delims=" %%i in ('dir /a-d /b /s') do move /y "%%i" "%testDir%\"
- :: 删除文件夹
- for /f "delims=" %%i in ('dir /ad /b') do rd /q "%%i"
- ::-----------原有的脚本加上两个--------------------end
- :: 再创建文件夹成对儿的移进去
- for /f "delims=" %%i in ('dir /a-d /b') do (
- if "!p!"=="%%~ni" (
- if not exist "%%~ni\" md "%%~ni\" >nul
- move /y "!pre!" "%%~ni\"
- move /y "%%i" ""%%~ni\"
- )
- set pre=%%i
- set p=%%~ni
- )
- popd
-
- pause & exit /b
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |