WinXP、Win7脚本自动加域及用户资料迁移(一)

WinXP、Win7脚本自动加域及用户资料迁移(一)
WinXP、Win7脚本自动加域及用户资料迁移(一)

WinXP、Win7脚本自动加域及用户资料迁移(一)

最近公司要上AD域项目,所有的用户全部从工作组环境切换到域环境,本地账号迁移到域账号。因客户端比较多,仔细研究了一下微软的加域和用户迁移工具,结合在网上搜到的一些脚本,自己编写了一个Windows Xp,Windows 7自动加域及自动迁移用户配置文件的脚本。该脚本使用到了几个工具:

1、Netdom.exe:计算机加域用到,XP和Windows 7须使用不同版本,可分别去2003和2008系统光盘里找。其中Windows 7还要使用到netdom.exe.mui文件,该文件可到 2008系

统 %windir%\system32\en-US\目录下复制。

2、moveuser.exe:XP系统迁移用户配置工具,网上下载或2003系统里面找。

3、USMT 4.0工具包:Windows 7用户配置迁移工具。网上下载,如果有安装Win AIK的,可以直接去目录下找,具体路径忘记了。其实这个工具的低版本也可以迁移XP系统,不过感觉比较复杂。

一、目录准备

收集齐了这几个工具,先在C盘根目录下创建Domain_Migration目录,该目录结构如下图:USMT,Win7,XP三个目录以及Auto.bat、NewSID和使用说明几个文件

Xp文件夹下放moveuser.exe,netdom.exe,XpAutoAddDomain.bat

Win7文件夹分为下放netdomx64和netdomx86文件夹和Win7x64AutoAddDomain.bat和Win7x86AuroDomain.bat文件,其中netdom中放置netdom.exe,netdom.exe.mui文件,因

为X64和x86平台下需要不同的netdom文件

二、使用说明

1、将Domain_Migration文件夹复制到C盘根目录

2、以管理员身份运行 Auto.bat

3、如果是XP系统,第一步建议先重置系统SID,更改计算机名和系统SID后重启(win7可跳过此步);重启后再次运行Auto.bat

4、选择系统类型,按照提示操作,更改计算机名后必须重启,再次运行Auto.bat加域

5、加域后重启,使用临时域管理员登陆,再次运行Auto.bat转移用户配置文件

转移完成后,注销,使用域账号登陆

6、删除Domain_Migration文件夹

三、bat文件详细说明

@echo off

color 1e

title XXX公司加域迁移用户数据脚本

echo 请用系统管理员帐户运行本程序,否则加域操作无法正常进行! echo.

ECHO ******选择操作系统类型*******

:START

echo.

echo 1: 重置系统SID(NewSID)

echo 2: WindowsXP

echo 3: Windows7 x86

echo 4: Windows7 x64

echo q: Quit

echo.

SET /P OS_type=系统类型[1-4 or q]:

IF "%OS_type%"=="q" GoTo EOF

IF "%OS_type%"=="1" GoTo Newsid

IF "%OS_type%"=="2" GoTo WinXP

IF "%OS_type%"=="3" GoTo Win7x86

IF "%OS_type%"=="4" GoTo Win7x64

echo 选择有误,请重新选择 & GoTo START

:WinXp

echo 你选择了WinXP系统!

call "c:\Domain_Migration\xp\XpAutoAddDomain.bat"

exit

:Win7x86

echo 你选择了Win7系统32位!

if not exist "%windir%\system32\netdom.exe" copy

"c:\Domain_Migration\win7\netdomx86\netdom.exe" "%windir%\system32" /y

if not exist "%windir%\system32\zh-CN\netdom.exe.mui" copy

"c:\Domain_Migration\win7\netdomx86\netdom.exe.mui" "%windir%\system32\zh-CN\" /y

if not exist "%windir%\system32\en-US\netdom.exe.mui" copy

"c:\Domain_Migration\win7\netdomx86\netdom.exe.mui" "%windir%\system32\en-US\" /y

REM 调用Windows 7 x86加域迁移脚本

call "c:\Domain_Migration\win7\Win7x86AutoAddDomain.bat"

exit

:Win7x64

echo 你选择了Win7系统64位!

if not exist "%windir%\system32\netdom.exe" copy

"c:\Domain_Migration\win7\netdomx64\netdom.exe" "%windir%\system32" /y

if not exist "%windir%\system32\zh-CN\netdom.exe.mui" copy

"c:\Domain_Migration\win7\netdomx64\netdom.exe.mui" "%windir%\system32\zh-CN\" /y

if not exist "%windir%\system32\en-US\netdom.exe.mui" copy

"c:\Domain_Migration\win7\netdomx64\netdom.exe.mui" "%windir%\system32\en-US\" /y

REM 调用Windows 7 x64加域迁移脚本

call "c:\Domain_Migration\win7\Win7x64AutoAddDomain.bat"

exit

:Newsid

echo 你选择了重置系统SID并改计算机名

set a=%computername%

echo 当前计算机名为:%a%

set /p newname=将用 NewSID 重置SID并改计算机名,请输入新计算机名:

if "%newname%"=="" echo 计算机名不能为空,请重新选择。&pause&endlocal&cls&goto Start

echo 即将更新SID,计算机名将从 %computername% 更改为 %Newname% 注:更改SID完成后将重新启动计算机

pause

c:\Domain_Migration\newsid /a %Newname%

goto end

:EOF

Exit

******************************************************************************* *******************************************

REM 脚本结束

2、WinXPAutoAddDomain.bat,更改计算机名,加域,迁移用户配置文件

@echo off

color 1e

cd /d C:\Domain_Migration\xp

::功能说明与使用说明注意事项

ECHO 请在使用本脚本前修改相应的参数为实际值

set dns1=10.2.0.51

set dns2=10.2.0.41

REM 请设置自己真实环境的域名、域管理员账号和密码

set domainname=https://www.360docs.net/doc/f15434464.html,

set domainadminname=xxx@https://www.360docs.net/doc/f15434464.html,

set domainadminpassword=xxx

::判断是否已经加入域,如果加入了则直接跳转

::wmic ntdomain get domainname | findstr /i "%domainname%

::if %errorlevel% equ 0 echo 该计算机已经加入域 && goto moveuser

ipconfig /all | findstr /i "%domainname%" >nul && echo 该计算机已经加入域,准备转移配置文件 && goto moveuser

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::判断当前登陆用户是否有管理员权限,如果没有则注销后重新以管理员登陆

:admin

ECHO ************************判断当前用户权限******************

net user %username% | findstr "*Administrators"

if %errorlevel% equ 1 (echo 当前用户不是本地管理员,请注销后使用有本地管理员权限的用户登录) else (goto DNS)

set /p logoff=现在要注销吗

if /i "%logoff%"=="y" logoff ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::判断当前DNS设置是否为指定地址,如果不是,则清空当前配置后重新设置DNS

:DNS

ECHO *************************更改DNS****************************

netsh interface ip show dns | findstr "%dns1%" 1>nul && echo DNS已经设置为%dns1% && goto renamecomputername

echo 清理更改现有DNS...

for /f "skip=2 tokens=2,* " %%i in ('netsh interface show interface') do (

set netname=%%j

if "%%j"=="环回" goto back

if "%%j"=="内部" goto back

netsh interface ip delete dns name="%%j" addr=all >nul

netsh interface ip add dns name="%%j" addr=%dns1% index=1 >nul

netsh interface ip add dns name="%%j" addr=%dns2% index=2 >nul

)

:back

echo DNS更改完成

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::判断计算机名是否已经更改,如更改则进入下一部分;如未更改是否需要更改计算机名,更改完成后要求重新启动计算机

:renamecomputername

ECHO *********************更改计算机名****************************

set a=%computername%

echo 当前计算机名为:%a%

set /p b=请输入要修改的计算机名称(跳过请输入s):

if /i "%b%"=="s" goto joindomain

if /i "%b%"=="" echo 计算机名不能为空 && goto renamecomputername

wmic computersystem Where name="%a%" call rename "%b%" >nul

if %errorlevel% equ 1 (echo 更改计算机名失败,请手工更改 && pause && exit) else (echo 计算机名已更改为%b%)

set /p reboot=更改计算机名完成,现在要重起吗?y/n:

if /i "%reboot%"=="y" shutdown /r /t 0

goto end ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::判断计算机是否已加入域,如加入域则继续下一部分;否则检查相应服务是否启动,自动加入域(用户名密码部分参数需要自行更改)

:joindomain

ECHO ***********************计算机加入域*************************

if /i "%userdomain%"=="%domainname%" goto moveuser

rem 判断服务TCP/IP NetBIOS HELPER服务是否禁用或未启动,如果禁用则更改为自动,未启动则自动启动,否则显示服务已启动

sc query state= inactive | findstr /c:"TCP/IP NetBIOS" && (echo 服务未启动,正在启动服务... && sc config lmhosts start= auto && sc start lmhosts) || echo 服务已启动

if /i "%userdomain%"=="%domainname%" do (echo 计算机已加入域 && goto moveuser) if not exist netdom.exe echo 请将netdom工具放到同文件夹下再尝试运行 && goto end

.\netdom join %computername% /Domain:%domainname% /UserD:%domainadminname%

/PasswordD:%domainadminpassword% || echo 加入域失败,请检查网络环境及批处理参数是否正确 && goto end

set /p shutdown=加入域完成,现在要重起吗?y/n:

if /i "%shutdown%"=="y" shutdown /r /t 0

goto end ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::使用moveuser工具对用户配置文件进行迁移(提示用户输入要迁移的用户和要迁移到的用户)

:moveuser

ECHO *********************用户配置文件迁移*************************

if not exist moveuser.exe echo 请将MOVEUSER工具放到同文件夹下再尝试运行 && goto end

net user

:retry

set /p user=请输入你要迁移的本地用户账户名称:

if /i "%user%"=="%username%" echo 转移的用户配置文件为当前登陆用户,请重新启动后使用域管理员登陆再进行转移 && goto end

net user %user% 2>nul 1>nul || echo 你输入的本地账户不存在,请重新输入 && goto retry set /p domainuser=请输入你要迁移到的域账号名称:

net user %domainuser% /domain 2>nul 1>nul

if %errorlevel% neq 0 (echo 你要转移到的域账户尚未建立,请建立后重新尝试迁移) && goto end 本文来自菜鸟技术网

moveuser %user% %domainname%\%domainuser% /k /y | findstr /i "failed" 2>nul 1>nul && echo 用户配置文件迁移失败,请检查配置 && goto end

::if %errorlevel% neq 0 echo 用户配置文件迁移失败,请检查配置 && goto end

::如果是从本机管理员用户迁移,则域用户也变成管理员,此处删除域用户管理员权限,加入PowerUsers群组,可自行更改

echo 更改域用户为Power User权限

net localgroup administrators %domainname%\%domainuser% /delete

net localgroup "Power Users" %domainname%\%domainuser% /add

echo 配置文件迁移成功,请注销后使用您的域账号登陆

set /p logoff=现在要注销吗?y/n:

if /i "%logoff%"=="y" logoff

goto end :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::结束退出

:end

pause>nul

exit

******************************************************************************* ***********************************************

REM 脚本结束

3、Win7AutoAddDomain.bat,更改计算机名,加域,迁移用户配置文件

@echo off

color 1e

::功能说明与使用说明注意事项

ECHO 请在使用本脚本前修改相应的参数为实际值

set dns1=10.2.0.51

set dns2=10.2.0.41

REM 请设置自己真实环境的域名、域管理员账号和密码

set domainname=https://www.360docs.net/doc/f15434464.html,

set domainadminname=xxx@https://www.360docs.net/doc/f15434464.html,

set domainadminpassword=xxx

::判断是否已经加入域,如果加入了则直接跳转

::wmic ntdomain get domainname | findstr /i "%domainname%

::if %errorlevel% equ 0 echo 该计算机已经加入域 && goto moveuser

ipconfig /all | findstr /i "%domainname%" >nul && echo 该计算机已经加入域,准备转移配置文件 && goto moveuser :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

::判断当前登陆用户是否有管理员权限,如果没有则注销后重新以管理员登陆

:admin

ECHO ************************判断当前用户权限******************

net user %username% | findstr "*Administrators"

if %errorlevel% equ 1 (echo 当前用户不是本地管理员,请注销后使用有本地管理员权限的用户登录) else (goto DNS)

set /p logoff=现在要注销吗

if /i "%logoff%"=="y" logoff

域控服务器迁移步骤(精)

域控服务器迁移步骤 假设主域控制器的IP为192.168.1.10,额外域控制器的IP为192.168.1.20 第一步:主域迁移之前的备份: 1. 备份主域服务器的系统状态 2. 备份主域服务器的系统镜像 3. 备份额外域服务器的系统状态 4. 备份额外域服务器的系统镜像 第二步:主域控制迁移: 1.在主域控服务器(19 2.168.1.10)上查看FSMO(五种主控角色)的owner(拥有者),安装Windows Server 2003系统光盘中的Support目录下的support tools 工具,然后打开提示符输入: netdom query fsmo 查看域控主机的五种角色是不是都在主域服务器上,当然也有可能在备份域控服务器上。 2.将域控角色转移到备份域服务器(192.168.1.20) 在主域控服务器(192.168.1.10)执行以下命令: 2.1 进入命令提示符窗口,在命令提示符下输入: ntdsutil 回车, 再输入:roles 回车, 再输入connections 回车, 再输入connect to server 192.168.1.20 (连接到额外域控制器) 提示绑定成功后,输入q退出。 2.2 依次输入以下命令: Transfer domain naming master Transfer infrastructure master Transfer PDC Transfer RID master Transfer schema master 以上的命令在输入完成一条后都会有提示是否传送角色到新的服务器,选择YES,完成后按Q退出界面。 2.3 五个步骤完成以后,进入192.168.1.20,检查一下是否全部转移到备份服务器192.168.1.20上,打开提示符输入: netdom query fsmo 再次查看域控制器的5个角色是不是都在192.168.1.20上面。 3. 转移全局编录: 3.1 打开“活动目录站点和服务”,展开site->default-first-site-name->servers,展开192.168.1.20, 右击【NTDS Settings】点【属性】,勾上全局编录前面的勾。 然后展开192.168.1.10,右击【NTDS Settings】点【属性】,去掉全局编录前面的勾。

移动Win7用户文件夹

移动Win7用户文件夹(我的文档)默认位置至D盘 Windows7的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中储存着所有的用户生成文件,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\你的用户名\Desktop\目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:、Users\用户名\Documents目录之中)。 用户文件夹处于系统盘的坏处在于,如若系统盘一旦坏掉,就可能连带用户文件一并丢失;其次,由于(随着使用不断生成的)用户文件处于系统盘,也没办法时常备份“干净的系统盘”。 如果能把用户文件夹挪到另外一块儿硬盘上(或者另外一个硬盘分区上),那么系统维护就会容易得多。平时生成的文件(大多数人放在“桌面”、“我的文档”里的文件最多),都被保存在系统盘(或分区)之外;于是随时都可以在不必担心用户文件丢失的情况下重新安装系统(或恢复系统备份)。 注意,以下假设你想把用户文件夹设置在D盘,假定D盘是NTFS分区。 1、新系统安装时: 在安装Win7的过程中,要求输入用户名及密码的时候,先不如输入任何信息,按“Shift+F10”呼出DOS窗口,输入以下命令: robocopy "C:\Users" "D:\Users" /E /COPYALL /XJ ------而后按下回车键,再输入 rmdir "C:\Users" /S /Q ------再按下回车键,最后输入 mklink /J "C:\Users" "D:\Users" ------以回车键结束命令输入 而后关闭DOS窗口,按部就班继续安装直至完成。 如此安装的Windows7,所有“用户特殊文件夹”(User Special Folder)的内容都已经被设置在D盘(非系统盘)上。 2、已经安装好的win7系统: 如果想要移动已安装好的Windows7中的用户文件夹,那么就要按以下步骤操作(稍微麻烦一点,并且过程中可能会出现无法拷贝文件的情况): ①关闭所有应用程序: 1. 按一下“Windows”键,输入“计算机管理”之后按“Enter”,呼出“计算机管理器”; 2. 鼠标点击“Administrator”,选择属性,而后在随后的对话框中去掉“帐户已禁用”之前的勾,而后关闭“计算机管理器”;

DOS批处理脚本

DOS批处理脚本 这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识。写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。. 先概述一下批处理是个什么东东。批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了;但我想总结出一个“比较合适的”,而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。或许你会因为这篇文章而“无条件爱上批处理”,那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的! 按照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。 OK,never claver and get to business(闲话少说言归正传)。批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。再说句“闲话”:要学好批处理,DOS基础一定要牢!当然脑子灵活也是很重要的一方面。 例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似): ping https://www.360docs.net/doc/f15434464.html, > a.txt ping https://www.360docs.net/doc/f15434464.html, >> a.txt ping https://www.360docs.net/doc/f15434464.html, >> a.txt ping https://www.360docs.net/doc/f15434464.html, >> a.txt ping https://www.360docs.net/doc/f15434464.html, >> a.txt

WIN7&8用户配置文件APPData文件夹重定向

注意,以下假设你想把用户文件夹设置在D盘,假定D盘是NTFS分区 1、新系统安装时: 在安装Win7的过程中,要求输入用户名及密码的时候,先不如输入任何信息,按“ Shift+F10 ”呼出DOS窗口,输入以下命令: robocopy "C:\Users" "D:\Users"/E /COPYALL /XJ ------ 而后按下回车键,再输入rmdir "C:\Users" /S /Q ------ 再按下回车键,最后输入 mklink /J "C:\Users" "D:\Users" ------ 以回车键结束命令输入 而后关闭DOS窗口,按部就班继续安装直至完成。 如此安装的Windows7,所有“用户特殊文件夹”(User Special Folder)的内容都已经被设置在D盘(非系统盘)上。 2、已经安装好的win7系统: 如果想要移动已安装好的Windows7中的用户文件夹,那么就要按以下步骤操作(稍微麻烦一点,并且过程中可能会出现无法拷贝文件的情况): ①关闭所有应用程序: 1. 按一下“Windows”键,输入“计算机管理”之后按“Enter”,呼出“计算机管理器”; 2. 鼠标点击“Administrator”,选择属性,而后在随后的对话框中去掉“帐户已禁用”之前的勾,而后关闭“计算机管理器”; 3. 注销当前用户(注意,不是“切换用户”),而后以“Administrator”登录 4. 打开命令行窗口,输入以下命令:robocopy "C:\Users""D:\Users" /E /COPYALL /XJ /XD"C:\Users\Administrator" 5. 注销Administrator,重新用你的用户名登录Windows7,而后到“计算机管理器”里禁用Administrator; 6. 以管理员身份打开一个DOS窗口,输入以下命令: rmdir "C:\Users" /S /Q mklink /J "C:\Users" "D:\Users" 呵呵,是不是有些复杂?嗯,新手老手们都可以亲自把玩下。 ②如果这样嫌麻烦,还有个开机强制的方法: 开机时按F8键,出现黑底白字的菜单(如下图),默认光标在第一项Repair your computer 上,直接按回车。 之后会弹出2个提示框,直接点Next或OK即可。就来到了这一界面: 单击最后一项:Command Prompt,依次输入下面三条命令。每条命令后按回车。 以下3条命令将“用户文件夹”从“C:\Users”设置为“D:\Users”。 robocopy “C:\Users”“D:\Users” /E /COPYALL /XJ /XD “C:\Users\Administrator”参数说明:此命令为Windows的“强健文件拷贝”命令。 /E 表示拷贝文件时包含子目录(包括空目录) /COPYALL 表示拷贝所有文件信息 /XJ 表示不包括Junction points(默认是包括的) /XD “C:\Users\Administrator”表示不包括指定的目录,此处指定目录为:“C:\Users\Administrator” rmdir “C:\Users” /S /Q 参数说明:此命令删除指定目录。 /S 删除指定目录及其中的所有文件。用于删除目录树。 /Q 安静模式。删除时不询问。 mklink /J “C:\Users”“D:\Users” 参数说明:此命令创建符号连接。

批处理基础知识

批处理文件基础知识 一、单符号message指定让MS-DOS在屏幕上显示的正文 ~ ①在for中表示使用增强的变量扩展。 ②在%var:~n,m%中表示使用扩展环境变量指定位置的字符串。 ③在set/a中表示一元运算符,将操作数按位取反。 ! ①在set /a中一元运算符,表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。 @ ①隐藏命令行本身的回显,常用于批处理中。 % ①在set /a中的二元运算符,表示算术取余。 ②命令行环境下,在for命令in前,后面接一个字符(可以是字母、数字或者一些特定字符),表示指定一个循环或者遍历指标变量。 ③批处理中,后接一个数字表示引用本批处理当前执行时的指定的参数。 ④其它情况下,%将会被脱去(批处理)或保留(命令行) ^ ①取消特定字符的转义作用,比如& | > < ! "等,但不包括%。比如要在屏幕显示一些特殊的字符,比如> >> | ^ &等符号时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了; ②在set/a中的二元运算符,表示按位异或。 ③在findstr/r的[]中表示不匹配指定的字符集。 & ①命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令。 ②在set/a中是按位与。 : ①标签定位符,表示其后的字符串为以标签,可以作为goto命令的作用对象。比如在批处理文件里面定义了一个":begin"标签,用"goto begin"命令就可以转到":begin"标签后面来执行批处理命令了。 ②在%var:string1=string2%中分隔变量名和被替换字串关系。 | ①管道符,就是将上一个命令的输出,作为下一个命令的输入."dir /a/b |more"就可以逐屏的显示dir命令所输出的信息。 ②在set/a中的二元运算符,表示按位或。 ③在帮助文档中表示其前后两个开关、选项或参数是二选一的。 / ①表示其后的字符(串)是命令的功能开关(选项)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的参数。 ②在set/a中表示除法。 > ①命令重定向符,将其前面的命令的输出结果重新定向到其后面的设备中去,后面的设备中的内容被覆盖。比如可以用"dir > lxmxn.txt"将"dir"命令的结果输出到"lxmxn.txt"这个文本文件中去。 ②在findstr/r中表示匹配单词的右边界,需要配合转义字符\使用。 < ①将其后面的文件的内容作为其前面命令的输入。 ②在findstr/r中表示匹配单词的左边界,需要配合转义字符\使用。 . ①在路径的\后紧跟或者单独出现时:

Windows server 域控制器 迁移 操作主机

Windows域迁移方法 1:新DC安装系统,配置IP DNS指向老DC (新DC可以加入现有域,也可以不加) 2:提升新DC为辅助域控制器后重启 3:重启完成后,安装DNS服务.然后等老DC的DNS信息同步到新DC的DNS上) 4:将新DC设置为GC,然后等新/旧DC同步,这要看你的网络环境了. 5:同步完成之后,就可以传送FSMO角色这是最重要的一步.(用ntdsutil来把旧DC上的FSMO五种角色转移到新DC 上,转移用到命令transfer )整个过程见下方. 6:老DC降级 重启 然后退域。关机 7:新DC改IP,把自己的IP地址改为DNS地址(做这一步就是为了让客户感觉不到更换了服务器,也省了到下面去改DNS 地址) 8:清理DNS记录,把以前所有旧DC的信息全部删除掉.A:然后利用ntdsutil命令删除掉所有旧DC的信息,B:用adsiedit.msc删除没有用的信息.C:进入活动目录站点与服务删除相应的站点和服务.D:在主域控器的dsa.msc的domain controller里删除没有用的旧DC 9:旧DC拔掉网线,重装系统. 10:到此基本就完成了. AD的五种操作主机的作用及转移方法 Active Directory 定义了五种操作主机角色(又称FSMO): 1.架构主机 schema master 2..域命名主机domain naming master 3.相对标识号 (RID) 主机 RID master 4.主域控制器模拟器 (PDCE) 5.基础结构主机 infrastructure master 转移办法: 转移RID\PDC\结构主机: Windows 界面: 1. 打开 Active Directory 用户和计算机。 2. 在控制台树中,右键单击“Active Directory 用户和计算机”,然后单击“连接到域控制器”。 3. 在“输入另一个域控制器的名称”中,键入要担任主机角色的域控制器的名称。 或单击可用的域控制器列表中的该域控制器。 4. 在控制台树中,右键单击“Active Directory 用户和计算机”,指向“所有任务”,然后单击“操作主机”。 5. 单击其中要改的选项卡,然后单击“更改”。 使用命令行: ntdsutil roles connection connect to server [DomainController] quit transfer RID master transfer PDC transfer infrastructure master 转移架构主机: windows 界面: 1. 打开 Active Directory 架构管理单元。 2. 在控制台树中,右键单击“Active Directory 架构”,然后单击“更改域控制器”。 3. 单击“指定名称”并键入要担任架构主机角色的域控制器的名称。 4. 在控制台树中,右键单击“Active Directory 架构”,然后单击“操作主机”。

WinXP、Win7脚本自动加域及用户资料迁移(一)

WinXP、Win7脚本自动加域及用户资料迁移(一) 最近公司要上AD域项目,所有的用户全部从工作组环境切换到域环境,本地账号迁移到域账号。因客户端比较多,仔细研究了一下微软的加域和用户迁移工具,结合在网上搜到的一些脚本,自己编写了一个Windows Xp,Windows 7自动加域及自动迁移用户配置文件的脚本。该脚本使用到了几个工具: 1、Netdom.exe:计算机加域用到,XP和Windows 7须使用不同版本,可分别去2003和2008系统光盘里找。其中Windows 7还要使用到netdom.exe.mui文件,该文件可到 2008系 统 %windir%\system32\en-US\目录下复制。 2、moveuser.exe:XP系统迁移用户配置工具,网上下载或2003系统里面找。 3、USMT 4.0工具包:Windows 7用户配置迁移工具。网上下载,如果有安装Win AIK的,可以直接去目录下找,具体路径忘记了。其实这个工具的低版本也可以迁移XP系统,不过感觉比较复杂。 一、目录准备 收集齐了这几个工具,先在C盘根目录下创建Domain_Migration目录,该目录结构如下图:USMT,Win7,XP三个目录以及Auto.bat、NewSID和使用说明几个文件

Xp文件夹下放moveuser.exe,netdom.exe,XpAutoAddDomain.bat

Win7文件夹分为下放netdomx64和netdomx86文件夹和Win7x64AutoAddDomain.bat和Win7x86AuroDomain.bat文件,其中netdom中放置netdom.exe,netdom.exe.mui文件,因 为X64和x86平台下需要不同的netdom文件

DOS批处理命令大全

写批处理 扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。 ==== willsort 编注======================================= .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 =================================== 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS 提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 ==== willsort 题注=================== 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于wind ows系统这个新型解释平台的涉入,使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 ======================== 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 ==== willsort 编注================== 批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe 文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。 =========================== 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序。 ==== willsort 编注===== 纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),https://www.360docs.net/doc/f15434464.html,中的内部命令(根据内存的环境随时进驻内存),以com为扩

工作组计算机入域后用户文件迅速迁移方法

工作组计算机入域后用户文件迅速 迁移方法 从工作组加入到域环境时,用户加入域后系统将会重新建立域用户配置文件,原有使用用户配置文件都全部没有了,需要手工拷贝及设定,相当浪费时间。 moveuser工具可以帮助我们方便的把本地用户的profile转移到域用户下面,对于大量转移有很大的帮助。转移包含:桌面、我的文档、OE、outlook等设定、打印机等等。 注:这里只探讨用户转移时更快速的实现用户文件、配置迁移方式,对于域管理不作讨论,因为有可能ADMT3.0有更完善的方法。 MoveUser官方解释: MoveUser uses the following syntax: moveuser [Domain\]OldUserAccount [Domain\]NewUserAcco unt [/c:Computer] [/k] [/y] Parameters OldUserAccount Specifies a user who has a local profile. Specify domain and u ser names in the Domain/User or the user principal name (UP N) format. If Domain is omitted, OldUserAccount is assumed t

o belong to the domain of the current user. NewUserAccount Specifies the user who will own the OldUserAccount profile. T his account must already exist. Specify domain and user nam es in the Domain/User or the user principal name (UPN) form at. If Domain is omitted, NewUserAccount is assumed to belo ng to the domain of the current user. /c:Computer Specifies a remote computer on which to make the changes. I f omitted, the local computer is assumed. Use this parameter to move the user profile to a new computer. /k Specifies that OldUserAccount resides in the local database of the computer and should not be deleted after the profile is moved. 保留本机帐户。 /y Directs MoveUser to overwrite any existing profiles. 完全覆盖配置。 本地工作组目录至域用户操作步骤: 1、本地用户使用netdom登陆入域;(也可在我的电脑右键属性

快速迁移域用户

ADMT3.1快速迁移域用户账户和组[为企业维护windows server 2008 系列十四] 作者:宋杨日期:2010-04-21 在windows server 2008 的AD维护工作中,我们可能需要将当前域的用户账户和组转移到另外一个域中(这个动作我们称之为迁移)。 在雅利安星际疫苗接种公司工作的windows 网络管理员号称不重疫苗也能顶的灵灵狗同志,正在为一件棘手的工作事件发愁。 雅利安公司因为研制出可以成功抵御十全星际流感的疫苗,在整个银河系名声大震,巴斯股(3009年最火爆的星际股市)也一路狂涨。同时,兼并了太阳系的喜马拉雅驴友公司。 喜马拉雅公司的精英研发部门“珠穆朗玛二部”也被收编进了雅利安公司的研发部。因为所有的资源管理都是基于活动目录的,所以灵灵狗同志需要将“珠穆朗玛二部”的所有员工账户和组迁移转移到雅利安公司的域下。 在查询了无所不知的位于雅利安星球的知识古树后,灵灵狗拨通了远在银河系另一端的地球村的AD 客户支持部的售后电话。 按照客服妹妹的指导,灵灵狗使用Hyper-V3009快速的搭建起了虚拟的评估环境。具体如下:

灵灵狗同志看完客服妹妹同步过来的的指导文档后很顺利的使用域管理员在喜马拉雅公司的https://www.360docs.net/doc/f15434464.html,域上登录了。 打开“Active dircetory 域和信任关系”,可以看到两个域,现在要把属于https://www.360docs.net/doc/f15434464.html,的域用户账户和组(原喜马拉雅公司)移动到https://www.360docs.net/doc/f15434464.html,(雅利安公司) 具体的账户可以通过下图看到,在“_Demo”OU 中有user1 、manager 两个用户和group组,其中user1属于group组。

oracle 执行批处理脚本语句

通过SQLPLUS 执行数据批处理 1、如addAutoData.sql文件的内容。 @"E:\workspace\naas\dbscript\transsystem\datasql\equipment.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\equipframe.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\equipslot.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\equippack.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\equiplogicport.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\cc.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\en_topolink.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\re_sys_equip.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\domain_equip.sql" 2、如deleteAutoData.sql文件的内容 delete from cc; delete from en_topolink; delete from domain_equip; delete from re_sys_equip; delete from equiplogicport; delete from equippack; delete from equipslot; delete from equipframe; delete from equipment; commit; 3、如deplay.sql文件的内容 @"E:\workspace\naas\dbscript\transsystem\datasql\deleteAutoData.sql" @"E:\workspace\naas\dbscript\transsystem\datasql\addAutoData.sql" 4、如文件的内容更 sqlplus naascs/naascs@naasdb10 @"E:\workspace\naas\dbscript\transsystem\datasql\deplay.sql" 5、在服务器上执行文件4,便可将上面表中的数据先清空后在比处理式的插入。

Windows7的用户文件夹彻底转移

怎样把c:\users\ 这个文件夹彻底转移呢? Windows7的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中储存着所有的用户生成文件,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\你的用户名\Desktop\目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:、Users\https://www.360docs.net/doc/f15434464.html,\Documents目录之中)。而随着Windows里安装的软件越来越多,就会有越来越多的“用户生成文件”被保存在“用户文件夹”里。在资源管理器的地址栏里输入“%AppData%”之后回车,就可以看到有多少软件把用户生成数据保存在那里:用户文件夹处于系统盘的坏处在于,如若系统盘一旦坏掉,就可能连带用户文件一并丢失;其次,由于(随着使用不断生成的)用户文件处于系统盘,也没办法时常备份“干净的系统盘”。 如果能把用户文件夹挪到另外一块儿硬盘上(或者另外一个硬盘分区上),那么系统维护就会容易得多。平时生成的文件(大多数人放在“桌面”、“我的文档”里的文件最多),都被保存在系统盘(或分区)之外;于是随时都可以在不必担心用户文件丢失的情况下重新安装系统(或恢复系统备份)。 注意,以下假设你想把用户文件夹设置在E盘,假定E盘是NTFS分区。 在安装Win7的过程中,要求输入用户名及密码的时候,先不如输入任何信息,按“Shift+F10”呼出DOS窗口,输入以下命令: robocopy "C:\Users" "E:\Users" /E /COPYALL /XJ rmdir "C:\Users" /S /Q mklink /J "C:\Users" "E:\Users" 而后关闭DOS窗口,按部就班继续安装直至完成。 如此安装的Windows7,所有“用户特殊文件夹”(User Special Folder)的内容都已经被设置在E盘(非系统盘)上。 如果想要移动已安装好的Windows7中的用户文件夹,那么就要按以下步骤操作(稍微麻烦一点,并且过程中可能会出现无法拷贝文件的情况): 0. 关闭所有应用程序; 1. 按一下“Windows”键,输入“计算机管理”之后按“Enter”,呼出“计算机管理器”; 2. 鼠标点击“Administrator”,选择属性,而后在随后的对话框中去掉“帐户已禁用”之前的勾,而后关闭“计算机管理器”; 3. 注销当前用户(注意,不是“切换用户”),而后以“Administrator”登录 4. 打开命令行窗口,输入以下命令:robocopy "C:\Users" "E:\Users" /E /COPYALL /XJ /XD "C:\Users\Administrator" 5. 注销Administrator,重新用你的用户名登录Windows7,而后到“计算机管理器”里禁用Administrator; 6. 重启电脑-->F8-->修复计算机-->下一步-->管理员用户和密码登录-->命令提示符,打开一个DOS窗口,输入以下命令: rmdir "C:\Users" /S /Q mklink /J "C:\Users" "D:\Users" exit 重启电脑即可

windows批处理文件(.bat&)

bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由 外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是 由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。 所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都 是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序 仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 =================================== 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部 分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批 处理文件。 ==== 注 =================== 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普 通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的 应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行 环境中,否则很多观念和设定都需要做比较大的变动。 ======================== 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分 有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括 内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 ==== 注 ================== 批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为 c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c 语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。 =========================== 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所 在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个

Windows域(AD)迁移方案

域迁移方案 一、事前准备: 先分别建立两个位于不同林的域,内建Server若干,结构如下: https://www.360docs.net/doc/f15434464.html, ADC02 172.16.1.2/24 https://www.360docs.net/doc/f15434464.html, EXS01 172.16.1.101/24 https://www.360docs.net/doc/f15434464.html, ADC01 172.16.1.1/24 其中: https://www.360docs.net/doc/f15434464.html,: ADC01作为https://www.360docs.net/doc/f15434464.html,主域控制器,操作系统为Windows Server 2008 R2,并安装有DHCP服务,作用域范围为172.16.1.100/24——172.16.1.200/24。 ADC02作为https://www.360docs.net/doc/f15434464.html,的辅助域控制器,操作系统为Windows Server 2008 R2 Exs01为https://www.360docs.net/doc/f15434464.html,的Mail服务器,操作系统为Windows Server 2003 SP2,Exchange 版本为2003 TMG01为防火墙,加入到https://www.360docs.net/doc/f15434464.html,网域,操作系统为Windows Server 2008 R2,Forefront TMG为2010 Client为加入到此https://www.360docs.net/doc/f15434464.html,网域的客户端PC,由DHCP Server分配IP https://www.360docs.net/doc/f15434464.html,:

Ad-cntse为https://www.360docs.net/doc/f15434464.html,的域控制器,操作系统为Windows Server 2008 R2,为了网域的迁移安装有ADMT以及SQL Server Express 2005 SP2 Exs-centse作为https://www.360docs.net/doc/f15434464.html,的Mail Server,操作系统为Windows Server 2003 SP2,Exchange 版本为2003. 备注:所有的Server均处在同一个网段172.16.1.x/24 二、https://www.360docs.net/doc/f15434464.html,的User结构: 如图,其中红色圈中部分为自建组别,OA User为普通办公人员组别,拥有Mail账号,admins为管理员群组,Terminal User为终端机用户组别,均没有Mail账号。以上三组别均建立有相应的GPO限制其权限。其他Users保持默认设定 三、设定域信任关系: 1、设定DNS转发器: 在https://www.360docs.net/doc/f15434464.html,域控制器Ad-cntse的DNS管理器设定把https://www.360docs.net/doc/f15434464.html,的解析交给https://www.360docs.net/doc/f15434464.html,的DNS,同理,把https://www.360docs.net/doc/f15434464.html,域控制器ads01的DNS管理器把https://www.360docs.net/doc/f15434464.html, 的解析交给https://www.360docs.net/doc/f15434464.html,的DNS。如下图:

更改Win7WIN10用户文件夹默认位置的方法

(本文已测试在WIN7/Win10中如下方法切实可行) Win7/Win10系统的用户文件夹默认所在位置是系统盘(通常是C盘)下的“\Users”目录之内。该文件夹中储存着所有的用户生成文件,比如你保存在“桌面”上的文件(实际上是保存在C:\Users\YourUserName\Desktop目录之中),再比如你保存在“我的文档”里的文件(实际上是保存在C:\Users\joe\Documents目录之中)。而随着Windows里安装的软件越来越多,就会有越来越多的“用户生成文件”被保存在“用户文件夹”里。在资源管理器的地址栏里输入“%AppData%”之后回车,就可以看到有多少软件把用户生成数据保存在那里。 用户文件夹处于系统盘的坏处在于,如若系统盘一旦坏掉,就可能连带用户文件一并丢失;其次,由于(随着使用不断生成的)用户文件处于系统盘,也没办法时常备份“干净的系统盘”。 如果能把用户文件夹挪到另外一块儿硬盘上(或者另外一个硬盘分区上),那么系统维护就会容易得多。平时生成的文件(大多数人放在“桌面”、“我的文档”里的文件最多),都被保存在系统盘(或分区)之外;于是随时都可以在不必担心用户文件丢失的情况下重新安装系统(或恢复系统备份)。 下面分两种情况介绍更改C盘中User文件夹未知的方法: 1.在安装Win7/Win10系统的过程中 注意,以下假设你想把用户文件夹设置在D盘,假定D盘是NTFS分区。 在安装Win7/Win10系统的过程中,要求输入用户名及密码的时候,先不如输入任何信息,按“Shift+F10”呼出DOS窗口,输入以下命令: robocopy "C:\Users" "D:\Users" /E /COPYALL /XJ rmdir "C:\Users" /S /Q

域控主机迁移总结

域控主机迁移总结文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

本文目录 经历过一次域控主迁移,悲剧的域控主机down掉。今天写一写,以后备用。 前提条件:一台域控主机A,一台备份域控主机B。 目的:将域控主机A迁移到域控主机B 步骤:1、将B作为备份域控主机 2、将A的所有信息从活动目录删除 3、把FSMO角色强行夺取过来 4、设置全局编录 具体步骤:1、运行dcpromo命令? 2、弹出Active Directory安装向导,点“下一步” 3、默认,“下一步” 4、选“现有域的额外域控制器”,点“下一步” 5、输入管理员及密码--还原模式密码--最后一步配置。 6、在域控主机A上运行ntdsutil

Metadata cleanup ----清理不使用的服务器的对象 Select operation target Connet to domain https://www.360docs.net/doc/f15434464.html, Quit List sites List domains in site--显示一下Site中的域 Select domain 0 List servers for domain in site—找到2台服务器 Select server 0--删除0号已经坏掉的服务器 Quit—退到上一层菜单 Remove selected server—删除服务器对象 使用ADSI EDIT工具删除Active Directory users and compute rs中的Domain controllers中欲删除的服务器对象 在AD站点和服务中删除没用的服务器对象 把复制连接也删除 把FSMO角色强行夺取过来用到“Ntdsutil” 这里有两种方法分别是Seize和Transfer,如果原来的FSMO角色的拥有者处于离线状态,那么就要用Seize,如果处于联机状态,那么就要用Transfer。在这里由于SERVER已经离线了,所以要用“Seize” 在站点和服务中设置全局编录

bat批处理文件

批处理文件bat 语法备忘 需要用到的脚本语言还真是多,从系统管理、数据管理、程序开发。脚本语言的影子真是无处不在,孱弱的windows上的可怜的bat也是不得不时常备忘得东东。现在渐渐习惯了把一些零碎的需要整理的文档放在writely上面,即方便自己移动处理文档,还可以跟他们协作或者讨论之用。而且能支持word文档的直接导入,之前用的时候稳定性不很理想,有发生过几次文件不能保存或者保存了无效的问题,发信给他们管理员,倒是很快得到了答复和解决。最近用的时候才发现出现了下列的文字。Writely is now part of Google! 看来有钱就是好啊,想买啥就买啥。估计用不了多久,google也会变成跟ms一样被骂得对象了。没办法,有钱的,横看竖看都是一副欠扁的样。好了,切入正题,把google借来的文章先放着自己备用!:) 扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。 ==== 注======================================= .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 =================================== 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 ==== 注=================== 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。 ======================== 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 ==== 注==================

相关文档
最新文档