|
同学在Windows 下每次安装ANSYS都要进行很多烦琐的操作。我尝试着写了一个批处理脚本。
下面是我写的脚本,也感觉非常复杂。不知道可否进行简化。谢谢。
(1)修改ansys.dat文件首行,格式为 SERVER 计算机名 MAC 1055
因此,需要提取计算机名、MAC,然后进行替换。我的操作如下:
[PHP]
echo SERVER >tempfile
ipconfig /all |sed -n "/Host Name/p"|sed "s/-//g"|sed "s/.*: \(.*\)/\1/g" >>tempfile %提取计算机名追加到tempfile文件
ipconfig /all |sed -n "/Physical Address/p"|sed "s/-//g"|sed "s/.*: \(.*\)/\1/g" >>tempfile %提取MAC地址追加到tempfile
echo 1055 >>tempfile
sed -i "N;N;N;s/\n/ /g" tempfile %将隔行合并为一会,中间用空格间隔
sed "1d" ansys.dat>>tempfile %删除ansys.dat文件首行后,追加到tempfile文件
[/PHP]
这样,tempfile 便修改成功了。
(2)创建注册表文件
ANSYSLMD_LICENSE_FILE = 1055@host (host being your computer name)
注册表格式为:
[PHP]Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Environment]
"ANSYSLMD_LICENSE_FILE"="1055@7dc06eb379da4e1"[/PHP]
由于无法使用 echo ">tempfile 命令将"追加到tempfile,先用-代替",然后再用sed替换回来。
[PHP]
echo Windows Registry Editor Version 5.00 >tempfile
echo [HKEY_CURRENT_USER\Environment] >>tempfile
echo -ANSYSLMD_LICENSE_FILE- = -1055@ >temp
ipconfig /all |sed -n "/Host Name/p"|sed "s/-//g"|sed "s/.*: \(.*\)/\1/g" >>temp
echo - >>temp
sed -i "s/-/\"/g" temp
sed -i -e "2N" -e "s/\n//" temp
sed -i -e "N" -e "s/\n//" temp
sed -i "s/ //g" temp
type temp>>tempfile
[/PHP] |
|