@echo off & setlocal EnableDelayedExpansion
:step1
cls
echo ===================================================================
echo Windows NT 6.x 用户目录转移工具 (支持Vista/2008/7/2008 R2)
echo ===================================================================
echo 功能说明:此工具将folders.txt文件指定的目录转移到目标位置并建立目录连接
echo 以下是即将转移的目录,如果不满意请在执行“确认操作”之前修改folders.txt
echo -------------------------------------------------------------------
type folders.txt
echo.
echo -------------------------------------------------------------------
echo 请输入目标位置,比如 D: 或 D:\newloc (最好是一个可写的空目录)
echo 目标位置和folders.txt文件每一行的结尾都不要以斜杠\结束
echo -------------------------------------------------------------------
set /p nl=在此输入:
:step2
echo 请输入要执行的操作:1 确认操作 2 重新开始 3 退出程序
echo -------------------------------------------------------------------
set /p yc=在此输入:
IF /i "!yc!"=="1" goto :step3
IF /i "!yc!"=="2" goto :step1
IF /i "!yc!"=="3" goto :end
Echo 您输入的!yc!不合法!请按任意键返回重新输入。
Pause>Nul&goto :step2
:step3
for /f "tokens=1,2 delims=:" %%i in (folders.txt) do (
rem robocopy "%%i:%%j" "!nl!%%j" /E /COPYALL /XJ
if %errorlevel% equ 0 echo "%%i:%%j" 到 "!nl!%%j" 目录复制成功
if %errorlevel% neq 0 echo "%%i:%%j" 到 "!nl!%%j" 目录复制失败&goto :end
上面注销的那一句的作用是将C盘中的相应目录拷贝到D盘(目录里的链接不能拷贝过来,所以要使用/XJ开关排除链接)
未完成程序段,请高手指教(创建D盘链接):
1、依次进入folders.txt文件夹中列出的各个目录,使用dir /s /on /al命令获得目录及子目录中的链接,输出格式见图1。
2、将图1中A部分和B部分相结合(不要盘符),前面加上!nl!变量(也就是目标位置),得到mklink命令的第2个参数(链接名)。
3、将图1中C部分取出(不要盘符),前面加上!nl!变量(也就是目标位置),得到mklink命令的第3个参数(目录名)。
4、如果一个链接标示为<JUNCTION>,那么它是一个目录链接,mklink命令要使用/J开关(第1个参数)。
5、如果一个链接标示为<SYMLINKD>,那么它是一个目录符号链接,mklink命令要使用/D开关(第1个参数)。
6、准备工作完成后,使用mklink做命令出相应的操作,在前面复制的新目录中创建链接(像原来的目录结构那样)。
7、我想这段程序也可以采用这种思路,依次进入每一层子目录,如果发现有链接就处理掉(<SYMLINKD>类型的链接不能直接处理,要先用rmdir命令把它删除,然后单独处理,以免造成重复调用,还好Win7系统盘只有一个这种链接)。
8、小弟才疏学浅,实在是不会呀,各位高手不要嫌弃
下面注销的这一句的作用是将C盘中的相应目录删除,给即将创建的C盘链接腾出位置。
rem rmdir "%%i:%%j" /S /Q
if %errorlevel% equ 0 echo "%%i:%%j" 目录删除成功
if %errorlevel% neq 0 echo "%%i:%%j" 目录删除失败&goto :end
下面注销的这一句的作用是将拷贝到D盘的几个主目录链接到C盘
rem mklink /J "%%i:%%j" "!nl!%%j"
if %errorlevel% equ 0 echo "%%i:%%j" 到 "!nl!%%j" 目录链接成功
if %errorlevel% neq 0 echo "%%i:%%j" 到 "!nl!%%j" 目录链接失败&goto :end
)
rmdir "C:\Documents and Settings"
mklink /J "C:\Documents and Settings" "!nl!\Users"
:end
C:\ProgramData
C:\Users
驱动器 C 中的卷是 WINHD01
卷的序列号是 000A-6889
C:\ProgramData 的目录
2010/11/09 14:01 <JUNCTION> 「开始」菜单 [C:\ProgramData\Microsoft\Windows\Start Menu]
2009/07/14 13:06 <JUNCTION> Application Data [C:\ProgramData]
2009/07/14 13:06 <JUNCTION> Desktop [C:\Users\Public\Desktop]
2009/07/14 13:06 <JUNCTION> Documents [C:\Users\Public\Documents]
2009/07/14 13:06 <JUNCTION> Favorites [C:\Users\Public\Favorites]
2009/07/14 13:06 <JUNCTION> Start Menu [C:\ProgramData\Microsoft\Windows\Start Menu]
2009/07/14 13:06 <JUNCTION> Templates [C:\ProgramData\Microsoft\Windows\Templates]
2010/11/09 14:01 <JUNCTION> 收藏夹 [C:\Users\Public\Favorites]
2010/11/09 14:01 <JUNCTION> 桌面 [C:\Users\Public\Desktop]
0 个文件 0 字节
C:\ProgramData\Microsoft\Windows\Start Menu 的目录
2010/11/09 14:01 <JUNCTION> 程序 [C:\ProgramData\Microsoft\Windows\Start Menu\Programs]
0 个文件 0 字节
所列文件总数:
0 个文件 0 字节
10 个目录 50,358,603,776 可用字节
驱动器 C 中的卷是 WINHD01
卷的序列号是 000A-6889
C:\Users 的目录
2009/07/14 13:06 <SYMLINKD> All Users [C:\ProgramData]
2009/07/14 13:06 <JUNCTION> Default User [C:\Users\Default]
0 个文件 0 字节
C:\Users\Administrator 的目录
2010/11/09 14:01 <JUNCTION> 「开始」菜单 [C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu]
2010/11/09 14:01 <JUNCTION> Application Data [C:\Users\Administrator\AppData\Roaming]
2010/11/09 14:01 <JUNCTION> Cookies [C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies]
2010/11/09 14:01 <JUNCTION> Local Settings [C:\Users\Administrator\AppData\Local]
2010/11/09 14:01 <JUNCTION> My Documents [C:\Users\Administrator\Documents]
2010/11/09 14:01 <JUNCTION> NetHood [C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Network Shortcuts]
2010/11/09 14:01 <JUNCTION> PrintHood [C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Printer Shortcuts]
2010/11/09 14:01 <JUNCTION> Recent [C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Recent]
2010/11/09 14:01 <JUNCTION> SendTo [C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\SendTo]
2010/11/09 14:01 <JUNCTION> Templates [C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Templates]
0 个文件 0 字节
C:\Users\Administrator\AppData\Local 的目录
2010/11/09 14:01 <JUNCTION> Application Data [C:\Users\Administrator\AppData\Local]
2010/11/09 14:01 <JUNCTION> History [C:\Users\Administrator\AppData\Local\Microsoft\Windows\History]
2010/11/09 14:01 <JUNCTION> Temporary Internet Files [C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files]
0 个文件 0 字节
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu 的目录
2010/11/09 14:01 <JUNCTION> 程序 [C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs]
0 个文件 0 字节
C:\Users\Administrator\Documents 的目录
2010/11/09 14:01 <JUNCTION> My Music [C:\Users\Administrator\Music]
2010/11/09 14:01 <JUNCTION> My Pictures [C:\Users\Administrator\Pictures]
2010/11/09 14:01 <JUNCTION> My Videos [C:\Users\Administrator\Videos]
0 个文件 0 字节
C:\Users\All Users 的目录
2010/11/09 14:01 <JUNCTION> 「开始」菜单 [C:\ProgramData\Microsoft\Windows\Start Menu]
2009/07/14 13:06 <JUNCTION> Application Data [C:\ProgramData]
2009/07/14 13:06 <JUNCTION> Desktop [C:\Users\Public\Desktop]
2009/07/14 13:06 <JUNCTION> Documents [C:\Users\Public\Documents]
2009/07/14 13:06 <JUNCTION> Favorites [C:\Users\Public\Favorites]
2009/07/14 13:06 <JUNCTION> Start Menu [C:\ProgramData\Microsoft\Windows\Start Menu]
2009/07/14 13:06 <JUNCTION> Templates [C:\ProgramData\Microsoft\Windows\Templates]
2010/11/09 14:01 <JUNCTION> 收藏夹 [C:\Users\Public\Favorites]
2010/11/09 14:01 <JUNCTION> 桌面 [C:\Users\Public\Desktop]
0 个文件 0 字节
C:\Users\All Users\Microsoft\Windows\Start Menu 的目录
2010/11/09 14:01 <JUNCTION> 程序 [C:\ProgramData\Microsoft\Windows\Start Menu\Programs]
0 个文件 0 字节
C:\Users\Default 的目录
2010/11/09 14:01 <JUNCTION> 「开始」菜单 [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu]
2009/07/14 13:06 <JUNCTION> Application Data [C:\Users\Default\AppData\Roaming]
2009/07/14 13:06 <JUNCTION> Cookies [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Cookies]
2009/07/14 13:06 <JUNCTION> Local Settings [C:\Users\Default\AppData\Local]
2009/07/14 13:06 <JUNCTION> My Documents [C:\Users\Default\Documents]
2009/07/14 13:06 <JUNCTION> NetHood [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Network Shortcuts]
2009/07/14 13:06 <JUNCTION> PrintHood [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Printer Shortcuts]
2009/07/14 13:06 <JUNCTION> Recent [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Recent]
2009/07/14 13:06 <JUNCTION> SendTo [C:\Users\Default\AppData\Roaming\Microsoft\Windows\SendTo]
2009/07/14 13:06 <JUNCTION> Start Menu [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu]
2009/07/14 13:06 <JUNCTION> Templates [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Templates]
0 个文件 0 字节
C:\Users\Default\AppData\Local 的目录
2009/07/14 13:06 <JUNCTION> Application Data [C:\Users\Default\AppData\Local]
2009/07/14 13:06 <JUNCTION> History [C:\Users\Default\AppData\Local\Microsoft\Windows\History]
2009/07/14 13:06 <JUNCTION> Temporary Internet Files [C:\Users\Default\AppData\Local\Microsoft\Windows\Temporary Internet Files]
0 个文件 0 字节
C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu 的目录
2010/11/09 14:01 <JUNCTION> 程序 [C:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs]
0 个文件 0 字节
C:\Users\Default\Documents 的目录
2009/07/14 13:06 <JUNCTION> My Music [C:\Users\Default\Music]
2009/07/14 13:06 <JUNCTION> My Pictures [C:\Users\Default\Pictures]
2009/07/14 13:06 <JUNCTION> My Videos [C:\Users\Default\Videos]
0 个文件 0 字节
C:\Users\Public\Documents 的目录
2009/07/14 13:06 <JUNCTION> My Music [C:\Users\Public\Music]
2009/07/14 13:06 <JUNCTION> My Pictures [C:\Users\Public\Pictures]
2009/07/14 13:06 <JUNCTION> My Videos [C:\Users\Public\Videos]
0 个文件 0 字节
C:\Users\ryanliue 的目录
2010/11/09 14:30 <JUNCTION> 「开始」菜单 [C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\Start Menu]
2010/11/09 14:30 <JUNCTION> Application Data [C:\Users\ryanliue\AppData\Roaming]
2010/11/09 14:30 <JUNCTION> Cookies [C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\Cookies]
2010/11/09 14:30 <JUNCTION> Local Settings [C:\Users\ryanliue\AppData\Local]
2010/11/09 14:30 <JUNCTION> My Documents [C:\Users\ryanliue\Documents]
2010/11/09 14:30 <JUNCTION> NetHood [C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\Network Shortcuts]
2010/11/09 14:30 <JUNCTION> PrintHood [C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\Printer Shortcuts]
2010/11/09 14:30 <JUNCTION> Recent [C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\Recent]
2010/11/09 14:30 <JUNCTION> SendTo [C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\SendTo]
2010/11/09 14:30 <JUNCTION> Templates [C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\Templates]
0 个文件 0 字节
C:\Users\ryanliue\AppData\Local 的目录
2010/11/09 14:30 <JUNCTION> Application Data [C:\Users\ryanliue\AppData\Local]
2010/11/09 14:30 <JUNCTION> History [C:\Users\ryanliue\AppData\Local\Microsoft\Windows\History]
2010/11/09 14:30 <JUNCTION> Temporary Internet Files [C:\Users\ryanliue\AppData\Local\Microsoft\Windows\Temporary Internet Files]
0 个文件 0 字节
C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\Start Menu 的目录
2010/11/09 14:30 <JUNCTION> 程序 [C:\Users\ryanliue\AppData\Roaming\Microsoft\Windows\Start Menu\Programs]
0 个文件 0 字节
C:\Users\ryanliue\Documents 的目录
2010/11/09 14:30 <JUNCTION> My Music [C:\Users\ryanliue\Music]
2010/11/09 14:30 <JUNCTION> My Pictures [C:\Users\ryanliue\Pictures]
2010/11/09 14:30 <JUNCTION> My Videos [C:\Users\ryanliue\Videos]
0 个文件 0 字节
所列文件总数:
0 个文件 0 字节
67 个目录 50,358,599,680 可用字节
欢迎光临 批处理之家 (http://bathome.net./) | Powered by Discuz! 7.2 |