Windows下使用Bat拷贝远程共享目录下文件

哈喽 我又来了

客户昨天提出了一个要求,这次的update里要用bat脚本去拷贝远程共享目录下的文件到各自的本地C盘目录下,于是乎,从昨天下午开始研究

到了今天中午,写写删删,乱改一气,总算弄出来了一个又有局限性又简易的小脚本。ps:时间太短,牛马也懵逼啊~ >.<!!

废话不多说,上正文
@echo off

::By 一袭白衣一

:: TIME:2025/1

::version:1.0

:: 检查配置文件是否存在

if exist 配置.txt (

set /p Remote_dir=<配置.txt

echo 从配置文件读取远程下载目录信息

) else (

echo 未读取到配置文件,请按回车进入默认更新方案:

:choose

set /p choice=

if /i "%choice%"=="1" (

set Remote_dir=\\远程目录1

) else if /i "%choice%"=="2" (

set Remote_dir=\\远程目录2

echo 请根据实际需要输入1或2选择默认远程共享路径:

echo 1.北京地区(BJ)

echo 2.上海地区(SH)

goto choose

)

)

echo 读取到的远程下载目录信息: %Remote_dir%

:write

echo 当前登录的用户为:%USERNAME%

set /p DIR_NAME="请确认上述用户名正确后回车即可:"

:: 检查C盘users下是否有客户用户的个人目录

set "TARGET_DIR=C:\Users\%USERNAME%"

if not exist "%TARGET_DIR%" (

echo 未找到目录: %TARGET_DIR%

goto write

)

:: 进入目标目录,检查是否存在目标目录

set "US_DIR=%TARGET_DIR%\XXX"

if not exist "%US_DIR%" (

echo 未检查到XXX目录,创建中...

mkdir "%US_DIR%"

echo %US_DIR%目录创建成功。

)

:: 进入US_DIR目录,检查是否已经存在的目录

set "目标_DIR="

for /d %%i in ("%US_DIR%\目录名称*") do (

if not defined 目标_DIR (

set "目标_DIR=%%i"

echo 找到目标目录: %%i

)

)

:: 如果存在目标目录名称开头的目录,则删除旧版本目录

if defined 目标_DIR (

rmdir /s /q "%目标_DIR%"

echo 删除旧版本成功。

)

:: 从远程机器的共享目录拷贝整个文件夹到US目录下

echo 开始下载新版本到本地,请稍等!

xcopy /e /i /y "%Remote_dir%" "%US_DIR%\目标目录"

if errorlevel 1 (

echo 远程目录无法访问,请推出后重新运行并选择其他选项重新拷贝,如仍失败,请联系管理员!

goto end

)else (

echo 新版本下载完成!

)

:end

pause

这个脚本由于时间原因,写的比较仓促,可以看到有很多地方都不严谨

比如:在查出来当前登录机器的用户后,不管用户有任何键盘操作,都会进行下一步!!

这个我实在是没时间再去加判断加逻辑了,不然这个地方可以加上判断,让客户确认后输入Y或者N,然后再让客户输入正确的用户名,脚本再去创建目录

巴拉巴拉的,还有很多地方要改,不过由于时间原因,这个脚本就先这么用吧,反正如果客户听话,按提示一步一步来,倒也没问题。毕竟前提条件都ok。

后边有空给再更新吧,这玩意就离谱!欢迎指导!!