无忧启动论坛
标题:
mklink命令转移win7系统盘文件夹users和programdata(附xp的方法)
[打印本页]
作者:
2010lakebaykal
时间:
2011-10-25 21:21
标题:
mklink命令转移win7系统盘文件夹users和programdata(附xp的方法)
使用mklink命令转移文件夹清理臃肿的c盘
(一) 我的转移过程
不喜欢windows的做法,把所有的用户和程序数据文件都放在系统盘(xp下是Documents and Settings文件夹,windows7/vista下是users和programdata文件夹),还有就是有些软件只能安装在系统盘而根本不给你选择的余地如Chrome。需要有一种办法可把上述文件夹弄到非系统分区去,在Linux系统下这不是问题(ln),但直到windows7才有了好点的解决方案,这就是
windows7自带的mklink.exe程序。
把默认放在c盘的users文件夹转移到其他分区,这样就不用担心使用一段时间后c盘越来越大的问题。
1、还没安装windows7时
在安装
Win7
的过程中,要求输入用户名及密码的时候,先不如输入任何信息,按
“Shift+F10”
呼出
DOS
窗口,输入以下命令:
robocopy "C:\Users" "D:\Users" /E /COPYALL /XJ
rmdir "C:\Users" /S /Q
mklink /J "C:\Users" "D:\Users"
2、安装完系统之后
若还需转移文件夹,可以
进
入
计算机管理,
点击
“Administrator”
,选择属性,而后在随后的对话框中去掉
“
帐户已禁用
”
之前的勾,而后关闭"
计算机管理器
”
;
例如要把C:\Program Files\Internet Explorer文件夹转移到其他盘,则把下列命令编辑输入新建的bat文件,命名mklink.bat:
robocopy "C:\Program Files\Internet Explorer" "D:\Program Files\Internet Explorer" /e /copyall /xj
rmdir "c:\Program Files\Internet Explorer" /s /q
mklink /j "C:\Program Files\Internet Explorer" "D:\Program Files\Internet Explorer"
开机时按
F8
键,出现黑底白字的菜单,默认光标在第一项
Repair your computer/修复计算机
上,直接按回车。
之后会弹出
2
个提示框,直接点
Next
或
OK
即可。就来到了下一界面,
单击最后一项:
Command Prompt/命令行,找到上述mklink.bat文件并执行。
我用上述办法把c盘的Program Files里面所有大于15M的文件夹、ProgramData都转移到了其他的分区,暂时没出现任何不良反应。
(二)参数
1、
robocopy
:此命令为
Windows
的
“
强健文件拷贝
”
命令
例如:
robocopy “C:\Users”“D:\Users” /E /COPYALL /XJ /XD “C:\Users\Administrator”
/E
表示拷贝文件时包含子目录(包括空目录)
/COPYALL
表示拷贝所有文件信息
/XJ
表示不包括
Junction points
(默认是包括的)
/XD
表示不包括指定的目录,此处指定目录为
“C:\Users\Administrator”
2、rmdir:
此命令删除指定目录
例如:
rmdir “C:\Users” /S /Q
/S
删除指定目录及其中的所有文件,用于删除目录树。
/Q
安静模式。删除时不询问。
3、mklink:
此命令创建符号连接
例如:
mklink /J “C:\Users” “D:\Users”
/J
连接类型为目录联接
(三)在windows xp系统下
方法一
:通过windows7预安装环境
1、创建windows7 setup 启动盘
用Bootice将U盘MBR和PBR写为NT6.X的启动方式,将windows7原始安装盘
里面的bootmgr提取放在根目录,同时在根目录建立boot、sources文件夹并将原始安装盘中boot目录下bcd和boot.sdi文件、souces目录下boot.wim文件提取放入U盘根目录同名文件夹内。
有现成的bcd和boot.sdi文件的话(例如从现在运行windows7系统中复制的),
使用bootice的bcd文件编辑功能,添加----新建WIM启动项(ramdisk),启动磁盘---boot,设备文件\sources\boot.wim,命名windows setup。
不给U盘建立bootmgr引导方式(而是grub引导)或者在xp系统的本机上运行(例如安装了一键ghost或者自行建立gurb引导方式)的话,编辑menu.lst:
title Win7 setup
find --set-root /bootmgr
chainloader /bootmgr
一样可以实现引导。本机运行相应的文件放入本机硬盘(c盘)即可.
若有windows7/vista的原始安装盘,光盘引导---修复计算机------命令行,就不需要上述步骤了。
2、引导成功后
选择windows setup,然后Repair your computer,第一项,最后选择CommandPrompt进入命令行,执行以下命令:
robocopy "C:\Documents and Settings" "D:\Documents and Settings" /E /COPYALL /XJ
rmdir "C:\Documents and Settings" /S /Q
mklink /J "C:\Documents and Settings" "D:\Documents and Settings"
这样就把相应的文件夹转移到了非系统分区。
方法二
:xp系统本身下实现
有些程序如chrome浏览器或者谷歌拼音输入法等只能安装在系统盘(portable版除外),还有些程序(sandbox)、游戏的数据、存档就是在C:\Documents and Settings文件夹,这时候可以在xp系统下建立目录联接实现转移。
1、复制文件夹
一般的文件夹直接复制到目标磁盘即可,如c:\xyz复制到d盘。
但有些文件可能需要注销---切换用户,也还可能出现无法拷贝、删除的情况。可以通过PE引导进入复制、删除文件夹。
要使用robocopy命令的话,由于xp下没有,可以从
这里
下载,其用法同上,对于那些顽固/系统文件夹可能要到故障恢复控制台、或者安全模式运行,安装的意义不是很大。
2、junction命令
xp系统下没有mklink命令,用junction(juntion.exe,
下载地址
)命令,效果与‘mklink /j’相同。把juntion.exe复制到某个文件夹(或者C:\WINDOWS\system32)里,在这个文件夹建立批处理文件,输入命令:
rmdir “C:\xyz” /S /Q
juntion.exe "C:\xyz" "D:\xyz"
这样就就实现了C:\xyz目录联接到D:\xyz的目的,c:\xyz本身只是类似个快捷方式而几乎不占用c盘空间。xp系统下不像win7那样,会把c:\xyz显示出个带箭头的文件夹图标来。但用dir命令查看c盘会发现明显不同,xyz目录不再是[dir]而是[junction]了。
这种方法可解决一般文件夹的目录联接问题,像C:\Documents and Settings或者C:\Program Files可能还要用到方法一或者结合pe来执行方可。
注:只有NTFS硬盘才可实现目录联接。
[
本帖最后由 2010lakebaykal 于 2011-10-25 21:22 编辑
]
作者:
快雪时晴
时间:
2011-10-25 22:56
我一般都选择junction
作者:
2010lakebaykal
时间:
2011-10-27 10:25
标题:
回复 #2 快雪时晴 的帖子
xp下也只能junction了,windows7下还真没试验过,回头看看
作者:
yephone
时间:
2014-10-29 16:34
本帖最后由 yephone 于 2014-10-29 18:03 编辑
我直接用U盘win7 PE启动,将c:\program files,c:\program files(X86),C:\programdata,c:\users\用户名\appdata四个文件夹复制到D盘,删除C盘中的原有文件夹,再使用mklink命令分别给四个目录创建目录联接。使用半个月,其它一切正常,就是再进行windows 体验指数评估时,提示“无法度量存储性能。错误:无法正确评估磁盘。数据无效。”。不知道该如何解决这个问题。
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/)
Powered by Discuz! X3.3