软件绿化之dos命令之路径
软件绿化使用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文件
[plain]
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
常见环境变量
%ALLUSERSPROFILE% 局部 返回所有“用户配置文件”的位置。
%APPDATA% 局部 返回默认情况下应用程序存储数据的位置。
%CD% 局部 返回当前目录字符串。
%SYSTEMDRIVE% 系统 返回包含 Windows XP 根目录(即系统根目录)的驱动器。
%SYSTEMROOT% 系统 返回 Windows XP 根目录的位置。
%TEMP% and %TMP% 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其它应用程序则需要 TMP。
%USERNAME% 局部 返回当前登录的用户的名称。
%UserProfile% 局部 返回当前用户的配置文件的位置。
%WINDIR% 系统 返回操作系统目录的位置。
%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/用户目录