VMWARE Thin APP

Posted Hello+World!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VMWARE Thin APP相关的知识,希望对你有一定的参考价值。

VMWARE Thin APP

1,ThinAPP 基本使用教程

 

2,cmd 环境变量设置方法详细解释

cmd设置环境变量可以方便我们bat脚本的运行,但是要注意的是变量只在当前的cmd窗口有作用(局部生效),如果想要设置持久的环境变量需要我们通过两种手段进行设置:一种是直接修改注册表,另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量。

1查看当前所有可用的环境变量:输入 set 即可查看。

2查看某个环境变量:输入 "set 变量名"即可,比如想查看temp变量的值,即输入 set temp

当然也可以使用echo %temp%

3修改环境变量 :输入 "set 变量名=变量内容"即可,比如将temp设置为"d:\\tempfile",只要输入set temp="d:\\tempfile"。注意,此修改环境变量是指用现在的内容去覆盖以前的内容,并不是追加。比如当我设置了上面的path路径之后,如果我再重新输入set temp="c",再次查看temp路径的时候,其值为"c",而不是"d:\\tempfile""c"

4设置为空:如果想将某一变量设置为空,输入"set 变量名="即可。如"set path=" 那么查看path的时候就为空。注意,上面已经说了,只在当前命令行窗口起作用。因此查看path的时候不要去右击"我的电脑"——"属性"........

5给变量追加内容(不同于3,那个是覆盖):输入"set 变量名=%变量名%;变量内容"。如,为temp添加一个新的路径,输入" set path=%path%;d:\\tempfile"即可将d:\\tempfile添加到path中,再次执行"set path=%path%;c:",那么,使用set path语句来查看的时候,将会有:d:\\tempfile;c:,而不是像第3步中的只有c:

环境变量详细解释

1、查看当前可用的所有环境变量(=系统变量+用户变量)

set

查看某个环境变量,如PATH

set PATH

添加环境变量,如xxx=aa

set xxx=aa

将环境变量(如xxx)的值置为空

set xxx=

在某个环境变量(如PATH)后添加新的值(如d:\\xxx

set PATH=%PATH%;d:\\xxx

[]:以命令行方式对环境变量的操作只对当前窗口的应用有效!

2WindowsJAVA用到的环境变量主要有3个:JAVA_HOMECLASSPATHPATH

1JAVA_HOME指向的是JDK的安装路径,如x:\\ j2sdk1.4.2,在这路径下你应该能够找到binlib等目录。设置方法:JAVA_HOME=c:\\ j2sdk1.4.2

2PATH变量的作用
java
程序在运行时首先在path变量所定义的路径去找java.exe,并以最先找到的为准,如果安装完j2sdk后不加设置,一般是C:\\WINDOWS\\system32目录。
j2sdk1.4
(还有其它java开发工具如jbuilder8)在安装后会将java.exe拷贝到C:\\WINDOWS\\system32目录下,当执行java.exe时,需要装载这个SDK下的一些文件。
j2sdk1.4在安装完成后,C:\\WINDOWS\\system32下的java.exe在运行时会在C:\\Program File\\java\\目录下装载必需的一些文件。但安装j2sdk后一般会在PATH变量的最前面设置C:\\ j2sdk1.4.2 \\bin
当先安装j2sdk1.4.2,后安装jbuilder8等开发工具时,由于jbuilder8java.exe在拷贝到C:\\WINDOWS\\system32时可能覆盖了j2sdk1.4.2java.exe,那么这时在运行的java.exe会到jbuilder8所在的目录去装载必需的一些文件。

3CLASSPATH环境变量的作用
告诉类装载器到哪里去寻找第三方提供的类和用户定义的类。也可用使用JVM命令行参数-classpath分别为应用程序指定类路径,在-classpath中指定的类路径覆盖CLASSPATH环境变量中指定的值。

3、当机器内装有多个SDK版本时,如何查看所用的是哪个SDK

java -verbose

在出现的屏幕信息中可以看出系统装载的是哪个目录下的文件。

4Windows OS下设置PATH的方法

〔系统〕->〔环境〕-> 〔高级〕,在PATH变量的文本框中的最前面输入C:\\ j2sdk1.4.2\\bin
或在命令行窗口中执行 set path=c:\\j2sdk1.4.2\\bin;%path%; 这样在命令行窗口的任一路径下都可以执行java.exe程序了。或设置PATH=%JAVA_HOME%\\bin;%PATH%

5、对于CLASSPATH环境变量的设置方法要加倍小心,是因为以后你出现的莫名其妙80%以上的怪问题都可能是由于CLASSPATH设置不对引起的。

CLASSPATH=.\\;%JAVA_HOME%\\lib\\tools.jar

首先要注意的是最前面的".\\;"——句点反斜杠分号。这个是告诉JDK,搜索CLASS时先查找当前目录的CLASS文件。
Troubleshooting

编译会出现以下情况,看你是否真得都理解环境变量的设置,并能解决它。
[T1]error
java不是一个可运行的程序? 由于没有设置环境变量path
[T2] error
:不能打开某个目录? 可能是忽视了path环境变量中的目录的设置顺序。
[T3]Exception on thread "main" java.lang.DoClassDefFoundError:Test
没有设置classpath的路径。

cmd查看环境变量

1、查看当前所有可用的环境变量:输入 set 即可查看。
2
、查看某个环境变量:输入 "set 变量名"即可,比如想查看path变量的值,即输入 set path
3
、修改环境变量 :输入 "set 变量名=变量内容"即可,比如将path设置为"d:\\hacker.exe",只要输入set path="d:\\nmake.exe"。注意,此修改环境变量是指用现在的内容去覆盖以前的内容,并不是追加。比如当我设置了上面的path路径之后,如果我再重新输入set path="c",再次查看path路径的时候,其值为"c:",而不是"d:\\nmake.exe";"c"
4
、设置为空:如果想将某一变量设置为空,输入"set 变量名="即可。如"set path=" 那么查看path的时候就为空。注意,上面已经说了,只在当前命令行窗口起作用。因此查看path的时候不要去右击"我的电脑"——"属性"........
5
、给变量追加内容(不同于3,那个是覆盖):输入"set 变量名=%变量名%;变量内容"。如,为path添加一个新的路径,输入" set path=%path%;d:\\hacker.exe"即可将d:\\hacker.exe添加到path中,再次执行"set path=%path%;c:",那么,使用set path语句来查看的时候,将会有:d:\\hacker.exe;c:,而不是像第3步中的只有c:

%ALLUSERSPROFILE% 局部 返回所有"用户配置文件"的位置。
%APPDATA%
局部 返回默认情况下应用程序存储数据的位置。
%CD%
局部 返回当前目录字符串。
%CMDCMDLINE%
局部 返回用来启动当前的 Cmd.exe 的准确命令行。
%CMDEXTVERSION%
系统 返回当前的"命令处理程序扩展"的版本号。
%COMPUTERNAME%
系统 返回计算机的名称。
%COMSPEC%
系统 返回命令行解释器可执行程序的准确路径。
%DATE%
系统 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date
%ERRORLEVEL%
系统 返回最近使用过的命令的错误代码。通常用非零值表示错误。
%HOMEDRIVE%
系统 返回连接到用户主目录的本地工作站驱动器号。基于主目录值的设置。用户主目录是在"本地用户和组"中指定的。
%HOMEPATH%
系统 返回用户主目录的完整路径。基于主目录值的设置。用户主目录是在"本地用户和组"中指定的。
%HOMESHARE%
系统 返回用户的共享主目录的网络路径。基于主目录值的设置。用户主目录是在"本地用户和组"中指定的。
%LOGONSEVER%
局部 返回验证当前登录会话的域控制器的名称。
%NUMBER_OF_PROCESSORS%
系统 指定安装在计算机上的处理器的数目。
%OS%
系统 返回操作系统的名称。Windows 2000 将操作系统显示为 Windows_NT
%PATH%
系统 指定可执行文件的搜索路径。
%PATHEXT%
系统 返回操作系统认为可执行的文件扩展名的列表。
%PROCESSOR_ARCHITECTURE%
系统 返回处理器的芯片体系结构。值: x86IA64
%PROCESSOR_IDENTFIER%
系统 返回处理器说明。
%PROCESSOR_LEVEL%
系统 返回计算机上安装的处理器的型号。
%PROCESSOR_REVISION%
系统 返回处理器修订号的系统变量。
%PROMPT%
局部 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。
%RANDOM%
系统 返回 0 32767 之间的任意十进制数字。由 Cmd.exe 生成。
%SYSTEMDRIVE%
系统 返回包含 Windows XP 根目录(即系统根目录)的驱动器。
%SYSTEMROOT%
系统 返回 Windows XP 根目录的位置。
%TEMP% and %TMP%
系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其它应用程序则需要 TMP
%TIME%
系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。有关 time 命令的详细信息,请参阅 Time
%USERDOMAIN%
局部 返回包含用户帐户的域的名称。
%USERNAME%
局部 返回当前登录的用户的名称。
%UserProfile%
局部 返回当前用户的配置文件的位置。
%WINDIR%
系统 返回操作系统目录的位置。

 

Setlocal 与 Endlocal 命令


开始与终止批处理文件中环境改动的本地化操作。在执行 Setlocal 之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行 Endlocal。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的 Setlocal 命令,都会有一个隐含的 Endlocal 被执行。Endlocal结束批处理文件中环境改动的本地化操作。在执行Endlocal 之后所做的环境改动不再仅限于批处理文件。批处理文件结束后,原先的设置无法还原。

语法:

Setlocal {enableextension | disableextensions} {enabledelayedexpansion | disabledelayedexpansion}
...
Endlocal
...

如果命令扩展名被启用,SETLOCAL 可以接受{}中的可选参数,启动或停用命令处理器扩展名及延缓环境变量扩展名。详细信息,请参阅 CMD /? 和 SET /? 。
无论在 Setlocal 命令之前它们的设置是什么,这些修改会一直保留到匹配的 Endlocal 命令。

示例:

@ECHO OFF
Echo Before Setlocal:
Set PATH
Pause
Setlocal
Rem reset environment var PATH
Set PATH=E:\\TOOLS
Echo after Setlocal and reset PATH
Set PATH
Pause
Endlocal
Echo Recovery PATH by Endlocal
Set PATH

从上例我们可以看到环境变量PATH第1次被显示得时候是系统默认路径。被设置成了"E:\\TOOLS"后显示为"E:\\TOOLS"。但当 Endlocal 后我们可以看到他又被还原成了系统的默认路径。但这个设置只在该批处理运行的时候有作用。当批处理运行完成后环境变量PATH将会还原。

技巧:

如果有一个参数,SETLOCAL 命令将设置 ERRORLEVEL 的值。如果有两个有效参数中的一个,该值则为零。用下列技巧,您可以在批脚本中使用这个来决定扩展名是否可用:

VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 echo Unable to enable extensions

这个方法之所以有效,是因为在 CMD.EXE 的旧版本上,SETLOCAL不设置 ERRORLEVEL 值。具有不正确参数的 VERIFY 命令将ERRORLEVEL 值初始化成非零值。

 

 

3,系统环境变量和用户环境变量在注册表的位置

系统环境变量:
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\SessionManager\\Environment\\
用户环境变量:
HKEY_CURRENT_USER\\Environment
如何使用程序设置环境变量,或者获取环境变量值呢?
首先我们设置用户环境变量,
变量名为:stf 
变量值为:aizuguoairenmin
然后重启VS,添加如下代码:
#include "windows.h"
#include "tchar.h"
int _tmain()
{
    TCHARbuf[1024] = L"0";
   GetEnvironmentVariable(L"stf", buf, sizeof(buf));//
获取变量名为stf的变量值
    DWORD dw =GetLastError(); //
判断是否获取stf对应的变量值
    if (0 !=dw)
    {
       return-1;
    }
   _tprintf(L"%s\\n", buf);

   SetEnvironmentVariable(L"stf", L"China");//
重新设置变量名为stf的变量值为China
   GetEnvironmentVariable(L"stf", buf, sizeof(buf));//
查看获取的变量名是否修改成功
   _tprintf(L"%s\\n", buf); //
输出修改后的结果
    return0;
}

运行结果:
aizhuguoairenmin
China
请按任意键继续. . .

需要注意的是:这里通过程序修改的环境变量值,在系统中还是显示之前的结果,那个因为SetEnvironmentVariable函数的修改只在当前进程有效。

 

4,vbscript Registry 注册表操作实现代码(读写删除)

VBScript Code: 

复制代码代码如下:


\' Create a WSH Shell object: 
Set wshShell = CreateObject( "WScript.Shell" ) 
\' 
\' Create a new key: 
wshShell.RegWrite "HKCU\\TestKey\\", "" 

\' Create a new DWORD value: 
wshShell.RegWrite "HKCU\\TestKey\\DWordTestValue", 1, "REG_DWORD" 

\' Create a new subkey and a string value in that new subkey: 
wshShell.RegWrite "HKCU\\TestKey\\SubKey\\StringTestValue", "Test", "REG_SZ" 

\' Read the values we just created: 
WScript.Echo "HKCU\\TestKey\\DWordTestValue = " _ 
& wshShell.RegRead( "HKCU\\TestKey\\DWordTestValue" ) 
WScript.Echo "HKCU\\TestKey\\SubKey\\StringTestValue = """ _ 
& wshShell.RegRead( "HKCU\\TestKey\\SubKey\\StringTestValue" ) & """" 

\' Delete the subkey and key and the values they contain: 
wshShell.RegDelete "HKCU\\TestKey\\SubKey\\" 
wshShell.RegDelete "HKCU\\TestKey\\" 

\' Note: Since the WSH Shell has no Enumeration functionality, you cannot 
\' use the WSH Shell object to delete an entire "tree" unless you 
\' know the exact name of every subkey. 
\' If you don\'t, use the WMI StdRegProv instead. 

\' Release the object 
Set wshShell = Nothing 


VBScript编写的WSH程序文件的扩展名为.vbs,该脚本程序在窗口界面是由wscript.exe文件解释执行的,在字符界面是由cscript.exe文件解释执行的,命令格式为:cscript filename.vbs 
  
创建对象 

  用VBScript修改注册表,必须先创建一个能于操作系统沟通的对象,再利用该对象的各种方法对注册表进行操作,创建这个对象的方法和格式如下
Dim OperationReGIStry 
Set OperationRegistry=WScript.CreateObject("WScript.Shell") 
  上述这些代码就创建了一个能与操作系统沟通的对象OperationRegistry 
对象的方法 
有了以上这个对象,并不等于就能马上对注册表进行操作,我们还必须弄清该对象对注册表进行操作的几种重要方法
   1.对注册表的读操作RegRead 
   2.对注册表的写操作RegWrite 
   3.对注册表的删操作RegDelete 

   补充一点,WSH还有两个通用的方法
   WScript.Echo()用来显示一串文本信息,相当于VB中的MsgBox() 
   Wscript.Quit()用来退出VBScript程序。 
  
方法的参数 
  对于以上三种操作RegRead,RegWrite,RegDelete都需要带参数进行,并且这些操作的参数的个数和形式又不尽相同,下面我就把它们的一个共同且必不可少的参数讲一下
该参数可称作是"路径参数",它包括根键,主键路径和键值,各部分表示的方法如下
根键
  根键有两种表示方法。 
  方法一:直接用它在注册表中的字符串来表示,如: 
  HKEY_CLASSES_ROOTHKEY_CURRENT_USER 
  方法二:用缩写的四个字母来表示,前两个为HK,后两个即为根键单词的首字母。如: 
  根键HKEY_CLASSES_ROOT表示为:HKCR, 根键HKEY_CURRENT_USER可表示为:HKCU等。 
主键路径
  主键路径就是目标键在注册表中的主键位置,各个主键之间用"\\"符分隔开。如:"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\" 
  键值
  键值参数直接接在主键路径之后。例如一个完整的路径如下所示: 
  "HKCR\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\NoRun" 
  
方法详解 

  1RegRead操作详解 

  读操作RegRead主要是用来读取注册表中主键

以上是关于VMWARE Thin APP的主要内容,如果未能解决你的问题,请参考以下文章

VMware vSphere中三种磁盘规格(厚置备延迟置零厚置备置零Thin Provision(精简置备))的解释说明

VMware vSphere中三种磁盘规格(厚置备延迟置零厚置备置零Thin Provision(精简置备))的解释说明

VMware虚拟化灾难备份与/恢复

VMWARE ESXI 虚拟硬盘的格式:精简置备厚置备延迟置零厚置备置零

VMWARE ESXI 虚拟硬盘的格式:精简置备厚置备延迟置零厚置备置零

oracle的oci和thin区别