无忧启动论坛

标题: 用cdimage.exe制作启动光盘的问题 [打印本页]

作者: mallon    时间: 2008-1-3 11:43
标题: 用cdimage.exe制作启动光盘的问题
命令行是这样的:cdimage -h -n -o -m -bboot.bin 3IN1 3IN1.ISO,做出来的PE可以启动。但是如果加上-d参数就不行了(不把文件名强制转换成大写),提示“CDBOOT: couldn't find NTLDR”,我的boot.bin是从nLite里拷出来的,用十六进制编辑器打开boot.bin也没有发现什么异常的地方...
作者: 123    时间: 2008-1-3 12:06
NTLDR和ntldr不是同一个文件
作者: mallon    时间: 2008-1-3 12:57
呵呵谢谢二楼,发现大小写确实是区分的,不论是引导文件还是txtsetup.sif,还有很多其它文件。
还有个问题,有没有什么工具,比如批处理能够把一个文件夹里所有文件名都转成大写啊?
作者: dgbgg    时间: 2008-1-4 13:49
偶也想找。现在一般这么用:
dir xxx /b>aa.txt
%programfiles%\ue\uedit32.exe aa.txt
用ue的列块模式把aa.txt编辑成
ren aa.bbb AA.BBB的格式。

很笨哦!
作者: mallon    时间: 2008-1-4 18:32
原帖由 dgbgg 于 2008-1-4 01:49 PM 发表
偶也想找。现在一般这么用:
dir xxx /b>aa.txt
%programfiles%\ue\uedit32.exe aa.txt
用ue的列块模式把aa.txt编辑成
ren aa.bbb AA.BBB的格式。

很笨哦!


写了一个简单的程序,不过不知道MoveFile函数为什么不能处理目录...

/*
    将某个目录下所有的文件名统统转成大写
*/

#include <windows.h>
#include <iostream>
#include <vector>
#include <string>
using namespace std;

void FilesInDir(string, vector<string> &);

int main(int argc, char **argv) {
    if (argc != 2) {
        cout << "Usage: " << argv[0] << " <dir>" << endl;
        return -1;
    }

    vector<string> files;
    FilesInDir(argv[1], files);
    for (vector<string>::iterator i = files.begin(); i != files.end(); i++) {
        string newname = *i;
        transform(newname.begin(), newname.end(), newname.begin(), ::toupper);
//        cout << *i << endl;
//        cout << MoveFile((*i).c_str(), newname.c_str()) << endl;
        MoveFile((*i).c_str(), newname.c_str());
    }

    return 0;
}

void FilesInDir(string dir, vector<string> &ret) {
    WIN32_FIND_DATA wfd;
    HANDLE fh;
    BOOL b;

    for (b = ((fh = FindFirstFile((dir + "\\*.*").c_str(), &wfd)) !=
              INVALID_HANDLE_VALUE); b; b = FindNextFile(fh, &wfd)) {
        if ((string(wfd.cFileName) != "..") && (string(wfd.cFileName) != ".")) {
            ret.push_back(dir + "\\" + wfd.cFileName);
            if (wfd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) {
                FilesInDir(dir + "\\" + wfd.cFileName, ret);
            }
        }
    }

    return;
}
作者: 123    时间: 2008-1-4 18:38
文件跟文件夹当然不一样MOVEFILE看名字就知道了为什么不用rename
作者: mallon    时间: 2008-1-6 08:49
最终发现了问题:忘了FindClose致使文件夹始终处于占用中。呵呵谢谢楼上各位




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3