无忧启动论坛

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

写了好几天的批处理文档,眼睛都看近视了,这会应该没错了吧(已解决)

  [复制链接]
跳转到指定楼层
1#
发表于 2021-6-10 13:20:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
2#
发表于 2021-6-10 14:04:42 | 只看该作者
别的不说,查找系统分区命令我感觉不严谨,毕竟硬盘分区不一定只有二十多个...

点评

你有更好的办法吗?两个字母的盘符我没有见过,要写可以加一个for命令嵌套  详情 回复 发表于 2021-6-10 14:46
回复

使用道具 举报

3#
 楼主| 发表于 2021-6-10 14:46:36 来自手机 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

4#
发表于 2021-6-10 14:48:29 | 只看该作者
建议远离脚本和代码,可以多活好几年, 至少头发不会掉那么快
回复

使用道具 举报

5#
发表于 2021-6-10 15:00:32 | 只看该作者
双系统下或者PE下 这不就瘫了吗
回复

使用道具 举报

6#
 楼主| 发表于 2021-6-10 15:09:14 来自手机 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

7#
 楼主| 发表于 2021-6-10 15:16:51 来自手机 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

8#
发表于 2021-6-10 15:39:58 | 只看该作者
我敢断定这段代码在 永远不会关机 而且在硬盘无系统情况下 还会搜索到系统 你猜是因为啥
::查找系统分区,未找到就关机
for %%h in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:) do (
回复

使用道具 举报

9#
发表于 2021-6-10 15:40:09 | 只看该作者
不少PE可能根本就不能PING;

这一句ping 127.1 -n 3 >nul就这行不了,提示出错;

前面回显的可能根本看不见.....
回复

使用道具 举报

10#
 楼主| 发表于 2021-6-10 16:23:28 来自手机 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

11#
 楼主| 发表于 2021-6-10 16:27:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

12#
 楼主| 发表于 2021-6-10 16:32:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

13#
发表于 2021-6-10 16:35:42 | 只看该作者

PE占用什么盘符,难道是A或B?应该排除掉啊
回复

使用道具 举报

14#
 楼主| 发表于 2021-6-10 16:43:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

15#
发表于 2021-6-10 18:05:25 | 只看该作者
建议楼主分享整套完整方案 使用方法 及注意事项,让大家测试一下。
回复

使用道具 举报

16#
发表于 2021-6-10 18:33:17 | 只看该作者
bjay2008xmy 发表于 2021-6-10 16:43
PE一般用的是X盘,顿时感觉惊恐了

哈哈哈哈哈哈哈哈哈哈或或或或  你终于反应过来了
回复

使用道具 举报

17#
发表于 2021-6-10 19:37:13 | 只看该作者
bjay2008xmy 发表于 2021-6-10 14:46
你有更好的办法吗?两个字母的盘符我没有见过,要写可以加一个for命令嵌套

>你有更好的办法吗?两个字母的盘符我没有见过,要写可以加一个for命令嵌套



回复

使用道具 举报

18#
发表于 2021-6-10 20:22:01 | 只看该作者
这个的应用场景在哪里?
回复

使用道具 举报

19#
 楼主| 发表于 2021-6-10 20:30:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

20#
 楼主| 发表于 2021-6-10 20:31:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

21#
 楼主| 发表于 2021-6-10 21:07:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

22#
发表于 2021-6-10 21:59:11 | 只看该作者
很久没用 ghost 了
其实 ghost 套系中有两个工具
gdisk 用来分区
omnifs 用来查找和操作分区中的文件

分区不一定要有盘符,只要 用 ghost 可识别的 1:2 2:1 之类的表示即可。

所以,我建议用 omnifs 获取分区信息并确定 存在指定文件的 分区,并确定 要回复的分区。
然后的事情就交给 ghost 办理了。

之前 这类操作都是 在 dos 下完成的。
自从有了 wim 打包方式 和 查分vhd 的概念,我很少用 ghost 来回复和安装系统了。
回复

使用道具 举报

23#
 楼主| 发表于 2021-6-10 22:09:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

24#
发表于 2021-6-10 23:01:37 | 只看该作者
bjay2008xmy 发表于 2021-6-10 22:09
我觉得对我来说,它们都只是一个工具,用哪个不重要,只要能做到我想做的事就可以了。

刚才我在PE中去 ...

系统分区未被分配盘符或者 系统没有你要找的文件,为啥不直接用 windows 目录来确认呢?
回复

使用道具 举报

25#
发表于 2021-6-10 23:07:20 | 只看该作者
本帖最后由 dos时代菜鸟 于 2021-6-10 23:51 编辑

用这个 直接找出 系统分区和 gho 位置
不管 分区是否隐藏,甚至是 linux 分区上的 gho 估计也能识别出来。

在64位 win7 win10 下测试通过


omnifs64_script-2.7z (1.04 MB, 下载次数: 98)

回复

使用道具 举报

26#
 楼主| 发表于 2021-6-10 23:23:34 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

27#
发表于 2021-6-10 23:48:26 | 只看该作者
本帖最后由 dos时代菜鸟 于 2021-6-10 23:49 编辑
bjay2008xmy 发表于 2021-6-10 23:23
并非存在“系统分区未被分配盘符或者 系统没有你要找的文件”的问题。
我当前电脑安装的是WIN7,后来我 ...

判断逻辑有问题
你是 逐个盘符判断如果 他没有 cmd.exe 就提示 没有系统分区,然后就关机,这样不行,
应该是 发现 cmd.exe 就设置个变量,循环结束后,通过这个变量的值判断是否找到了 windows 所在分区。
可以把这个变量的值设置为 存在cmd.exe 分区的盘符。

我上面 的附件 里面 有脚本,可以实现 找到 系统分区和 gho 位置。
你可以参考下。

回复

使用道具 举报

28#
 楼主| 发表于 2021-6-10 23:59:33 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

29#
发表于 2021-6-11 07:09:39 来自手机 | 只看该作者
你得循环完了,才能确定所有盘符都没有WINDOWS,
回复

使用道具 举报

30#
发表于 2021-6-11 08:16:11 | 只看该作者
本帖最后由 dos时代菜鸟 于 2021-6-11 09:12 编辑



我下面代码!!!!!是可以。。。。
  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set find1=0
  4. for %%c in (C D E F G H I J K L M N O P Q R S T U V W ) DO (
  5.         IF EXIST %%c:\windows\explorer.exe call :found1 %%c
  6. )

  7. if !find1! equ 0 echo 未找到 windows 分区
  8. pause

  9. goto :eof

  10. :found1
  11. set find1=1
  12. echo 找到 windows 分区 %1:
  13. exit /b
复制代码



下面是按照你的思路,写的。


  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. set gho_file=systembak.gho
  4. set find1=0
  5. set find2=0
  6. for %%c in (C D E F G H I J K L M N O P Q R S T U V W ) DO (
  7.    IF EXIST %%c:\windows\explorer.exe call :found1 %%c
  8.    if exist %%c:\!gho_file! call :found2 %%c
  9. )

  10. if !find1! equ 0 (
  11.    echo 未找到 windows 分区
  12.    call :error1
  13. )
  14. if !find2! equ 0 (
  15.    echo 未找到 GHO 文件
  16.    call :error1
  17. )

  18. ECHO.
  19. ECHO 接下来把!find2!:\systembak.gho恢复到!find1!:
  20. ghost64.exe -clone,mode=pload,src=!find2!:\systembak.gho:1,dst=!find1!: -sure
  21. ECHO 恢复系统已完成,准备关机
  22. wpeutil shutdown

  23. GOTO :EOF

  24. :found1
  25.    set find1=%1
  26.    echo 找到 windows 分区 %1:
  27. exit /b

  28. :found2
  29.    set find2=%1
  30.    echo 找到 GHO 文件 %1:\!gho_file!
  31. exit /b

  32. :error1
  33.    color 48
  34.    echo 按任意键关机
  35.    pause>nul
  36.    wpeutil shutdown
  37. exit /b
复制代码



但是问题是 ,你这个思路,如果 目标电脑 根本没有 windows ,甚至连分区都没有,是个新硬盘呢?
还是 考虑 再通过交互模式手动 选择分区?
如果硬盘上 有多个 windows 或者多个 systembak.gho 又改咋整?是否也要 考虑 交互式 选择?



回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 05:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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