level 1
我要批处理一个文件夹下的文件,但该死的文件都有个特殊字符“・”,在GBK下统统变成了“?”,传给程序就直接报告找不到文件
在属性里改代码页为932后就干脆连文件名都显示不了,但我又实在不想换语言属性
所以我现在的解决方案是将原文件批量重命名成“*_点啊点_*”转换后再重命名回来
然后我开始忖度着怎么让CLI程序支持用unicode传递参数……
CMD就真的没法用unicode传递参数么?
2010年05月25日 04点05分
1
level 13
console程序改用unicode版的文件访问API, 如 _wfopen, CreateFileW
命令行不需要修改代码页
2010年05月25日 05点05分
2
level 13
文件名虽然无法直接输入,但用粘贴,tab,for枚举等方法都可以输入,显示出来的是个空格.
2010年05月25日 05点05分
3
level 1
OTL
难道要自己用GetCommandLineW?
2010年05月25日 05点05分
5
level 9
定义一个这样的程序入口就可以实现
void Entry()
{
int argc;
wchar_t **argv;
argv = CommandLineToArgvW(GetCommandLineW(), &argc);
main(argc, argv);
ExitProcess(0);
}
然后你可以照样写你的main函数
int main(int argc, wchar_t **argv)
2010年05月25日 05点05分
6
level 13
unicode版入口的原型是这样:
int wmain(int argc, wchar_t** argv);
2010年05月25日 07点05分
8