批处理复制最新的文件夹里面的bmp文件到指定目录
发布网友
发布时间:2023-08-18 09:40
我来回答
共3个回答
热心网友
时间:2023-09-03 14:45
测试成功!
我不会映射网络驱动器,你先写一个批处理:
第一行:把B的D盘映射为Z盘
第二行:call B.bat
第三行:断开Z盘
我为你写的B.bat:
功能是将A机Z盘“question”里的“new”文件夹里最后建立的一个文件夹中的所有bmp文件复制到A机的E盘的old文件夹下。而且,如果A机E盘old文件夹里有同名文件,则把复制过来的文件的文件名前面加字母“n”。
有三个函数,findnewfolder函数找出某个文件夹里最新的文件夹;
copyandrename函数是智能复制,如果重名的话文件名加上n并递归;
main函数是主函数,先调用findnewfolder,找不到的话给出错误信息,否则对findnewfolder给出的文件夹里面所有的bmp文件调用copyandrename.
(都用的是很简单的语句,你一定能看懂)
@echo off
setlocal enabledelayedexpansion
call:main
pause
endlocal
goto :eof
:main
if not exist E:\old md E:\old
call:findnewfolder "Z:\question\new"
if "!answer!"=="" (
echo Z:\question\new里找不到文件夹
exit /b
)
for /f "delims=" %%i in ('dir /a:-d /b /s "!answer!"\*.bmp') do (
call:copyandrename "%%i" "E:\old\%%~nxi"
)
exit /b
:findnewfolder
for /f "delims=" %%i in ('dir /a:d /b /o:-d %1') do (
set "answer=%~1\%%i"
exit /b
)
set "answer="
exit /b
:copyandrename
if not exist %2 (
copy %1 %2
exit /b
) else (
call:copyandrename %1 "%~dp2n%~nx2"
exit /b
)
热心网友
时间:2023-09-03 14:46
你好烦啊,这样算了。new固定起来
首先确定B机的question文件夹是共享的,在A机可以通过:
\\192.168.1.102 查看
B.cmd如下:
@ECHO OFF
echo 试试这样行不行
title 批处理复制最新的文件夹里面的bmp文件到指定目录
color 2a
echo.
cd \\192.168.1.102\question\new
set num=0
for /f "delims=" %%i in ('dir /a-d /b *.bmp') do (
if not exist "e:\old\%%i" (
copy "%%i" e:\old>nul
) else call :copy_bmp "%%i" "%%~ni" %%~xi
)
goto :eof
:copy_bmp
set file_n=%2
set "file_n=%file_n:~1,-1%"
set file_x=%3
set /a num+=1
if not exist "e:\old\%file_n%%num%%file_x%" (
copy %1 "e:\old\%file_n%%num%%file_x%">nul
) else call :copy_bmp %1 "%file_n%" %file_x%
set num=0
goto :eof
############################
朋友像你所说的那样用批处写起来烦人啊,我试帮你写了。太多判断了,你说只要在前面加n,如果下次再现在前面有n的文件,那么就会覆盖掉,帮你改了,都自动编号
还有你question目录下就是目录没文件吗?如果真像你说的那样写,那还要判断目录下还有没有文件或者单单是目录没文件。用批处实现有点难哦。
写个C什么写程序这样对相起来会简单些。才能完全实现你的要求.
上面的批处中question文件夹为中文名“问题”是可以的
热心网友
时间:2023-09-03 14:46
用公文包不就行了
参考资料:http://zhidao.baidu.com/question/22330258.html