无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 10149|回复: 50
打印 上一主题 下一主题

在PE桌面建立原磁盘上操作系统My Documents文件夹的快捷方式

[复制链接]
跳转到指定楼层
1#
发表于 2007-11-28 17:31:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目的很简单:
因为pe启动后占用C盘符,想利用批处理打开位于D:\Documents and Settings\用户名\下的"My Documents"文件夹.
试了很多种办法都不成功
explorer d:\Documents and Settings\%UserProfile%\My Documents---失败
explorer D%UserProfile:~1%\My Documents---失败(打开的是d:\Documents and Settings\Default User\My Documents)


不要说这样做的意义不大或者根本没有意义,我只是想解决这个问题.


修改一下标题,希望有高人看到,提供点思路.

[ 本帖最后由 jiudun 于 2007-11-30 11:22 PM 编辑 ]
2#
发表于 2007-11-28 17:41:54 | 只看该作者
打开文件夹用

@ECHO off

cd “D:\Documents and Settings\用户名\My Documents”
回复

使用道具 举报

3#
 楼主| 发表于 2007-11-28 17:43:38 | 只看该作者
这个批处理放在PE的桌面上,双击就可以打开位于D盘系统的"我的文档",方便了拷贝文件.
Windows用户在C盘创建的文件一般情况位于Documents and Settings\用户名\My Documents\
                                                                                                       \桌面\
                                                                                                       \收藏夹\

如果在PE的桌面上放置3个批处理文件,分别打开这3个文件夹,方便了已瘫痪系统的文件拷贝
回复

使用道具 举报

4#
 楼主| 发表于 2007-11-28 17:45:07 | 只看该作者
原帖由 yinyuan 于 2007-11-28 05:41 PM 发表
打开文件夹用

@ECHO off

cd “D:\Documents and Settings\用户名\My Documents”

用户名不是固定的,不知道用什么变量.
回复

使用道具 举报

5#
发表于 2007-11-28 17:45:56 | 只看该作者
请问你如何执行那个CMD屁处理?
用鼠标去点那个屁处理文件或快捷方式么?不如直接用鼠标去双击那个目录算了。
回复

使用道具 举报

6#
发表于 2007-11-28 17:48:28 | 只看该作者
start "我的文档" "d:\Documents and Settings\用户名\My Documents"

但是你不知 用户名 是什么所以基本上是不能全自动的。
必须确认用户名是什么或是有什么关联或特点
回复

使用道具 举报

7#
发表于 2007-11-28 17:53:31 | 只看该作者
真是的,PE中有强大功能的PECMD不用,总是搞什么屁处理,PECMD可以将整个目录链接到[开始]菜单上,把硬盘原来的“我的文档”作为一个菜单项!
回复

使用道具 举报

8#
 楼主| 发表于 2007-11-28 17:54:27 | 只看该作者
"用户名不确定"问题就出在这里,如果确定的话直接弄个快捷方式,把路径改一下就OK了.
回复

使用道具 举报

9#
 楼主| 发表于 2007-11-28 17:57:50 | 只看该作者
原帖由 lxl1638 于 2007-11-28 05:53 PM 发表
真是的,PE中有强大功能的PECMD不用,总是搞什么屁处理,PECMD可以将整个目录链接到[开始]菜单上,把硬盘原来的“我的文档”作为一个菜单项!

这个我知道,我只是对于出现的这个问题纳闷.
回复

使用道具 举报

10#
发表于 2007-11-28 18:04:55 | 只看该作者
鸡肋类问题
虽然不清楚
但也不想研究
飘过飘过~~~
回复

使用道具 举报

11#
发表于 2007-11-28 18:09:13 | 只看该作者
仔细想一下
把用户名写入变量应该也可以
只是如果用户名是中文的
那么在DOS窗口下要输入中文就比较麻烦了
飘过飘过~~~
衣袂飘飘o(∩_∩)o...哈哈
回复

使用道具 举报

12#
发表于 2007-11-28 22:30:41 | 只看该作者

呵呵,chenall兄才是Batch高手

原帖由 chenall 于 2007-11-28 05:48 PM 发表
start "我的文档" "d:\Documents and Settings\用户名\My Documents"

但是你不知 用户名 是什么所以基本上是不能全自动的。
必须确认用户名是什么或是有什么关联或特点

试试这个:
@echo off
set P=C:\Documents and Settings
FOR /F %%i In ('dir /B /O-D "%P%"') DO (
    if exist "%P%\%%i\桌面" (
        set WINUSER=%%i
        goto :nextStep
    )
)
:nextStep
echo 用户名之一是%WINUSER%
pause


必要时可把其中的C:\换成D:\
回复

使用道具 举报

13#
发表于 2007-11-29 09:04:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

14#
发表于 2007-11-29 17:42:00 | 只看该作者
不如直接用鼠标去双击那个目录算了。
回复

使用道具 举报

15#
 楼主| 发表于 2007-11-29 21:23:18 | 只看该作者
原帖由 pseudo 于 2007-11-28 10:30 PM 发表

试试这个:


必要时可把其中的C:\换成D:\

这个不错,检测用户名成功,好思路!
回复

使用道具 举报

16#
发表于 2007-11-29 21:27:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

17#
 楼主| 发表于 2007-11-29 21:31:10 | 只看该作者
还有一种思路:搜索D:\Documents and Settings下的所有目录,找出符合条件的并打开,(条件不知道该限定为什么?文件夹内文件数量多少?还是文件夹占用空间的大小?还是别的什么?)

请原谅我的"脱裤放屁",我只是个充满好奇心的,喜欢问的人.
回复

使用道具 举报

18#
发表于 2007-11-29 21:35:56 | 只看该作者
不能定位盘符和用户名是最大的问题。
回复

使用道具 举报

19#
 楼主| 发表于 2007-11-29 21:36:39 | 只看该作者
@echo off
for /f "delims=" %%a in ('dir /s /b /ad D:\*') do call :slz "%%a"
echo explorer.exe "%folder%"
pause

:slz
set xxx=%~1
if not defined xxx goto:eof
if not defined folder set "folder=%~1"
for /f "tokens=1* delims= " %%i in ('dir /-c "%~1"^|find "个文件"') do set most=%%i
if not defined most1 set most1=%most%
if "%most%" gtr "%most1%" set "most1=%most%" & set "folder=%~1"
echo "%~1" 有%most%个文件!
goto:eof

这个是以文件夹内文件的数量为条件的,这里的路径是D:\,少了Documents and Settings,给老大们看看,有什么问题没有?
回复

使用道具 举报

20#
 楼主| 发表于 2007-11-29 21:44:36 | 只看该作者
虽然我没实验,但是一个问题会出现,搜索比较的时间远比亲自用鼠标打开要找的文件夹要慢.(估计又有人说这是脱裤放屁)
回复

使用道具 举报

21#
发表于 2007-11-29 22:19:22 | 只看该作者
晕死了,干脆就将找到的全部打开好了。
一般情况下,里面只有一个用户是有用的,其它都是系统内置的没有用。
所以只需检测用户文件夹里面有My Documents这个目录就可以了。
简单贴一个吧,希望对你有用。
自己将

set homepath=c:\Documents and Settings
改成你的目录。

但是有时候我的文档不一定是在这个目录下的。所以.....

基本上是无用的。


@echo off
set homepath=c:\Documents and Settings
for /f "usebackq delims=:" %%i in (`dir/ad/b "%homepath%"`) do if exist "%homepath%\%%i\My Documents" start "%%i的文档" "%homepath%\%%i\My Documents"

[ 本帖最后由 chenall 于 2007-11-29 11:47 PM 编辑 ]
回复

使用道具 举报

22#
发表于 2007-11-29 23:22:18 | 只看该作者
"我的文档"目录是可变的,很难通用,至少本人的就是这样,"我的文档"不是在C:盘,也不是在 Documents and Settings 目录。
回复

使用道具 举报

23#
发表于 2007-11-30 10:26:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

24#
发表于 2007-11-30 13:12:05 | 只看该作者
原帖由 nn2nn 于 2007-11-30 10:26 AM 发表
我的文档里
desktop.ini 内容
[DeleteOnCopy]
Owner=SYSTEM
Personalized=5
PersonalizedName=My Documents


不可能做到通用的。
因为我的文档位置是可以变的,
虽然可以通过全盘搜索来找到,但是效率太低了,还不如动动手找出来更方便。
回复

使用道具 举报

25#
 楼主| 发表于 2007-11-30 23:12:56 | 只看该作者
不放弃,仍然在寻找解决的思路和办法.希望大家给点思路.
回复

使用道具 举报

26#
发表于 2007-12-1 12:08:41 | 只看该作者
原帖由 jiudun 于 2007-11-30 11:12 PM 发表
不放弃,仍然在寻找解决的思路和办法.希望大家给点思路.


根本没有通用的办法,如本人的机子,设置了两个用户,两个用户的"我的文档"都不在C:盘,包括 Documents and Settings 目录都不在C:盘,
将 Documents and Settings 放在C:盘是大菜的方法,一不小心,重将系统所有的文档都消失。
如果遇到这种情况,除非你将硬盘上的所有文件搜索一次!

未命名.PNG (53.17 KB, 下载次数: 23)

未命名.PNG
回复

使用道具 举报

27#
发表于 2007-12-1 12:14:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

28#
发表于 2007-12-1 14:03:41 | 只看该作者
不知楼主有没有试过我21楼的代码呢?

如果你的目录是固定的就可以用的。

c:\Documents and Settings

d:\Documents and Settings
或.....
回复

使用道具 举报

29#
发表于 2007-12-1 16:23:47 | 只看该作者
突然想到一个思路。或许可行。
需要外部命令reg.exe和setx.exe

具体请参考以下批处理。

  • @echo off
  • ::
  • :: 在PE桌面建立原磁盘上操作系统My Documents文件夹的快捷方式
  • ::
  • :: bbs.wuyou.net   chenall
  • ::
  • set "regpath=HKEY_LOCAL_MACHINE\_USER_\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\personal"
  • for %%i in (c: d:) do if exist "%%i\Documents and Settings" CALL :获取文档位置 %%i
  • goto :eof
  • :获取文档位置
  • Set "ProPath=%1\Documents and Settings"
  • for /f "usebackq delims=:" %%i in (`dir/ad/b "%ProPath%"`) do if exist "%ProPath%\%%i" call :LINK %%i
  • goto :eof
  • :LINK
  • ::过滤系统用户,可能还有其它的,可自己添加
  • if /i "%*"=="NetworkService" goto :eof
  • if /i "%*"=="LocalService" goto :eof
  • if /i "%*"=="All Users" goto :eof
  • if /i "%*"=="Default User" goto :eof
  • if not exist "%ProPath%\%*\ntuser.dat" goto :eof
  • echo.准备创建%*用户的文档的快捷方式......
  • set docpath=
  • REG UNLOAD HKLM\_USER_ >nul 2>nul
  • REG LOAD HKLM\_USER_ "%ProPath%\%*\ntuser.dat" >nul 2>nul
  • ::/*从注册表中获用户的我的文档位置,因为使用reg得到的数据有时是错误的,所以在还没有好的办法之前暂时用这种方式
  • for /f "usebackq tokens=1* delims=:" %%i in (`setx docpath -k "%regpath%"`) do set "docpath=%%j"
  • if not defined docpath goto :eof
  • ::将上面的路径前面的空格去掉
  • set docpath=%docpath:~1%
  • ::因为PE系统的盘符和原系统的盘符不一定是一样的,所以搜索C:-F:的对应目录
  • if not exist "%docpath%" (
  •         for %%i in (c: d: e: f:) do if exist "%%i%docpath:~2%" set "docpath=%%i%docpath:~2%"
  • )
  • PECMD LINK %USERPROFILE%\桌面\%*的文档在%docpath:~0,1%盘,%docpath%
  • REG UNLOAD HKLM\_USER_ >nul 2>nul
  • goto :eof
        chenall 发表于:  2007-12-01  13:19
回复

使用道具 举报

30#
发表于 2007-12-1 16:57:08 | 只看该作者

重大贡献!

原帖由 chenall 于 2007-12-1 04:23 PM 发表
突然想到一个思路。或许可行。

REG LOAD HKLM\_USER_ "%ProPath%\%*\ntuser.dat" >nul 2>nul

看到这句非同小可,茅塞顿开,许多难题可能由此突破!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-27 10:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表