软件绿化使用bat文件,必然会涉及到获取各种路径,例如安装路径,系统目录之类的问题。这些主要通过相对路径和环境变量。
例如如下的目录结构
SogouInput\
\6.6.0.9394\
\6.6.0.9394\SogouPy.ime
\6.6.0.9394\SogouTSF.dll
\scd\
1.reg
env.ini
scdlist.ini
安装.bat
运行 安装.bat,由于要进行一些敏感操作,所以必须以管理员权限运行,否则不能注册DLL,写注册表,复制文件到系统目录下,但以管理员权限运行后
当前目录改变为系统目录下的System32,也就是cmd命令的路径,所以需要切换当前路径。
首先切换到当前目录也就是ogouInput\下,使用cd /d %~dp0 rem 切换到当前目录
则SogouPy.ime的目录就是6.6.0.9394\SogouPy.ime,SogouTSF.dll的目录就是6.6.0.9394\SogouTSF.dll,其他依次类推
SogouPy.ime 需要复制到系统目录下,则必须使用环境变量
copy 6.6.0.9394\SogouPy.ime %WINDIR%\System32\SogouPy.ime rem 复制文件到系统System32下
copy env.ini %UserProfile%\AppData\LocalLow\SogouPY\env.ini rem 复制到用户文件夹下的AppData\LocalLow\下
start %WINDIR%\explorer.exe rem 重启系统目录下的explorer.exe 桌面进程
完整的搜狗输入法bat文件
cd /d %~dp0 rem 切换到当前目录,由于以管理员权限运行,不知道什么原因,当前目录改变为系统目录下的System32下,而不是bat文件所在的目录 taskkill explorer.exe rem 结束桌面进程 regsvr32 6.6.0.9394\SogouTSF.dll rem 注册DLL copy 6.6.0.9394\SogouPy.ime %WINDIR%\System32\SogouPy.ime rem 复制文件 copy env.ini %UserProfile%\AppData\LocalLow\SogouPY\env.ini rem 复制文件 copy scdlist.ini %UserProfile%\AppData\LocalLow\SogouPY\scdlist.ini rem 复制文件 copy env.ini %UserProfile%\AppData\LocalLow\SogouPY\env.ini rem 复制文件 xcopy scd %UserProfile%\AppData\LocalLow\SogouPY\scd /s /i /e rem 复制文件夹 start 1.reg rem 调用注册表文件 start %WINDIR%\explorer.exe rem 重启桌面进程 pause
%CommonProgramFiles% 返回操作系统CommonProgramFiles目录的位置
%SystemDrive%
操作系统所在的分区号。如 C:
%windir%
操作系统根目录。如 C:\WINDOWS
%ALLUSERSPROFILE%
相当于 C:\Documents and Settings\All Users
%APPDATA%
相当于 C:\Documents and Settings\用户目录\Application Data
%ProgramFiles%
相当于 C:\Program Files
%CommonProgramFiles%
相当于 C:\Program Files\Common Files
%HOMEDRIVE%
操作系统所在的分区号。如:C:
%HOMEPATH%
相当于 \Documents and Settings\用户目录
%USERPROFILE%
相当于 C:\Documents and Settings\用户目录