NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 2949|回復: 4

[問題] %curdrv%變數詭異的現象

[複製鏈接]
發表於 2013-5-21 17:29:29 | 顯示全部樓層 |閱讀模式
或許是舊版PECMD才有的現象
但是在這邊發現這個問題,跟大家分享一下
印像中好像有跟金大問過~不記得了
PECMD 2.6.862.2536

我的隨身碟是 AxisPlus 的 USB3.0 U3M32 SLC
量產過 USB光碟機+USB硬碟機
USB光碟是使用ISO映像檔NONAME XPE 代號 F:
USB硬碟是使用GRLDR的NONAME XPE 代號 E:








然後我從隨身碟USB硬碟開機 NONAME XPE( E: )
結果就是
USB硬碟RXPE.IMG讀取的OUTPECMD.INI的位置
是光碟機的位置( F: )
所以所有檔案當然都是在 F:\OUTTOOL\XXX.EXE
雖然我是從E:\ 開機~ 可是卻還是啟動 F:\ 的檔案

是有兩個解決的方法~但是方法1太麻煩了
1.就是直接改 USB硬碟( E: )\RXPE.IMG裡面的 PECMD.INI 讓他啟動XXXTOOL 而不是OUTTOOL
這樣就不會找錯了
2.就是進BIOS把USB 光碟機 DISSABLE掉 嗯 這個簡單多了

只是要告訴各位這個訊息
雖然會遇到同樣情況的人不多就是了!



 樓主| 發表於 2013-5-22 00:28:11 | 顯示全部樓層
話說怎麼覺得你打字好像在做海報 字體5彩繽紛外加有大有小
還有可否指教其他變數是什麼
 樓主| 發表於 2013-5-22 17:03:17 | 顯示全部樓層
本帖最後由 呆呆烈 於 2013-5-22 17:07 編輯

喔喔  感恩 這下我知道來龍去脈了 謝啦
XPE版本是...2007/06/18 左右的版本改上來的
為什麼要用舊版~~因為我個人不喜歡WIM阿~
雖然很好用ˇ但是某些情況不好用(尤其是幫別人維修)
五彩繽紛字體...
發表於 2013-5-22 18:30:20 | 顯示全部樓層
本帖最後由 wang_966 於 2013-5-22 18:43 編輯

不同的思考邏輯導致不同的結果, 請參考附在文末的程式,
如果由 drive c 找到 drive z :   for (drive='c'; drive<='z'; drive++) {
改成由 drive z 找到 drive c :   for (drive='z'; drive>='c'; drive--) {
若PC中不同drive存在兩份相似的內容, 則不同的搜尋順序便會抓到不同的 drive.

=======================================================================
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <dir.h>
#include <string.h>
#include <process.h>

void main(int argc, char *argv[])
{
  struct ffblk ffblk;
  char drive, ttt_drv;
  char vol_name[20];
  FILE *fp;

  if (argc > 1)
    ttt_drv=argv[1][0];

  for (drive='c'; drive<='z'; drive++) {
    sprintf(vol_name,"%c:\\*.*",drive);
    if (findfirst(vol_name,&ffblk,FA_LABEL)==0) {
      if ( strncmpi(ffblk.ff_name,"MS-RAMDR.IVE",12)==0 ||
           strncmpi(ffblk.ff_name,"RAMDRIVE",8)==0) {
        //printf("RamDisk = %c\n",drive);
        if (argc > 1)
          sprintf(vol_name,"%c:setenv.bat",ttt_drv,drive);
        else
          sprintf(vol_name,"setenv.bat",drive);
        if ( (fp=fopen(vol_name,"w")) != NULL ) {
          fprintf(fp,"SET RAMDRV=%c\n",drive);
          fclose(fp);
        }
        if (argc > 1)
          sprintf(vol_name,"%c:ttt%c.mon",ttt_drv,drive);
        else
          sprintf(vol_name,"ttt%c.mon",drive);
        if ( (fp=fopen(vol_name,"w")) != NULL ) {
          fprintf(fp,"ramdrive\n");
          fclose(fp);
        }
        exit(0);
      }
    }
  }
  printf("RamDisk not found!\n");
}
 樓主| 發表於 2013-5-22 19:56:52 | 顯示全部樓層
喔 這個有用 我來玩看看
感謝
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2025-8-18 12:01 , Processed in 0.099523 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表