一、背景
最近在遇到安装工作,工作量太大,一个个手动去下载文件,然后在打开目录发送快捷方式太麻烦了,工作不繁琐,但是重复性工作太多。幸运的是安装是在window电脑上的,想到了批处理是否一可以一键安装,即有以下实现。(偷懒人必备想法)
二、实现想法:
分两步:第一步是先从域共享文件下载文件。
第二步是从下载的文件里面找exe,即需要创建快捷方式的文件,去创建快捷方式。
三、遇到的问题:
1.汉字的路径,连接的/创建快捷方式的时候都有报错,需要用到:chcp 65001
2.路径不存在的,需要做个存在与否判断
四、以下是实现的代码,仅供参考:
@echo off
::处理字符乱码
chcp 65001
::判断是否存在文件夹
if not exist "D:\ewell" (
mkdir -Y "D:\ewell"
net use \\172.0.100.1\单点登录\单点登录 /user:1 1
xcopy /E /Y "\\172.0.100.1\单点登录\单点登录" "D:\ewell"
) else (
net use \\172.0.100.1\单点登录\单点登录 /user:1 1
xcopy /E /Y "\\172.0.100.1\单点登录\单点登录" "D:\ewell"
)
::net use \\172.0.100.1\单点登录\单点登录 /user:1 1
::xcopy /E /Y "\\172.0.100.1\单点登录\单点登录" "D:\ewell"
::start \\172.0.100.1\单点登录\单点登录
::创建快捷方式
::使用时需要更改路径:"D:\ewell\ewellframe\Ewell.Portal.exe"
if not defined WorkDir call:GetWorkDir "D:\ewell\ewellframe\Ewell.Portal.exe"
(echo Set WshShell=CreateObject("WScript.Shell"^)
echo strDesKtop=WshShell.SPEcialFolders("DesKtop"^)
::设置快捷方式名称,和路径
echo Set oShellLink=WshShell.CreateShortcut(strDesKtop^&"\Ewell.Portal.lnk"^)
echo oShellLink.TargetPath="D:\ewell\ewellframe\Ewell.Portal.exe"
::设置工作路径
echo oShellLink.WorkingDirectory=""
echo oShellLink.Windowstyle=1
::设置说明
echo oShellLink.Description=""
echo oShellLink.Save)>makelnk.vbs
echo 桌面快捷方式创建成功!
makelnk.vbs
del /f /q makelnk.vbs
exit
goto :eof
:GetWorkDir
set WorkDir=%~dp1
set WorkDir=%WorkDir:~,-1%
goto :eof
五、解释
-
net use \\file\share /user:1 "": 这个命令将连接到名为"file"的计算机上的共享文件夹"share"。在连接时,使用的用户名为1,密码为空白。执行这个命令后,就可以访问共享文件夹中的所有文件和文件夹了。
-
xcopy /E /Y "\\file\share\*" "D:\": 这个命令将使用xcopy工具将共享文件夹中的所有文件和文件夹复制到本地计算机的D盘根目录上。其中,/E选项表示复制所有子目录和空目录,/Y选项表示不提示确认覆盖现有文件。
-
mkdir -Y 创建文件夹的时候不提示,直接创建
-
可以把共同的设置一个全局变量参数,后续通过%参数名%去调用也可