2014年8月20日 星期三

#!/usr/bin/env python出現:No such file or directory訊息

最近在學習Python遇到了一個問題
如果加入#!/usr/bin/env python則在執行的時候就不需要打python xxx.py,直接打xxx.py即可

我遇到的問題是在Window上coding並且在Linux上執行時,出現:No such file or directory訊息困擾了我許久,本來還以為是python版本的相容性問題,結果是被無形的字符影響。原來在Window編輯完後在該行的尾段會自動加入CR LF,在Linux則是認定為LF所以#!/usr/bin/env python CR LF 在Linux會認定為#!/usr/bin/env python CR 而不是#!/usr/bin/env python,所以當然出現:No such file or directory的訊息囉!

如何看到 CR LF 這些字符?
UltraEdit、Notepad++都可以很容易地看到及轉換
我舉Notepad++來當例子

如何看:
檢視 -> 特殊字元 -> 顯示所有字元

如何轉換:
編輯 -> 檔案格式轉換 -> 轉換成UNIX格式

2012年4月27日 星期五

安裝字型檔步驟


安裝字型檔兩個步驟

Step 1: 將*.ttf Copy到 C:\Windows\Fonts下
Step 2: Create Regist File

EX:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"字型名 (TrueType)"=字型檔名.ttf

2010年6月2日 星期三

[轉文]處理文字檔內多了個^M

文字檔內多了個^M(是dos檔的關係)要怎麼移除呢?
tr -d \r <> newfile

Ex:
#!/usr/local/bin/bash

if [ -d ./ ]; then
for file in ./*.list ; do
tr -d \r < $file > $file.new && mv $file.new $file
done
fi

PS:如果不行就用這個sed -i “s/\r//” FILENAME

2010年5月10日 星期一

DEL功能應用

刪除一個或數個檔案。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

names 指定一個或多個檔案或者目錄清單。
萬用字元可用來刪除多個檔案。
如果指定了一個目錄,該目錄中的所
有檔案都會被刪除。
/P 刪除每一個檔案之前提示確認。
/F 強製刪除只讀檔案。
/S 刪除所有次目錄中的指定的檔案。
/Q 安靜模式。刪除全局萬用字元時,不要求確認
/A 根據屬性選擇要刪除的檔案
屬性 R 只讀檔案 S 系統檔案
H 隱藏檔案 A 存檔檔案
I 無內容索引檔案 L 重分析點
- 表示“否”的前綴

如果命令擴展被啟用,DEL 和 ERASE 更改如下:
/S 開關的顯示句法會顛倒,即只顯示已經刪除的檔案,而不顯示找不到的檔案。

如果遇到無法刪除的檔案可以使用以下的範例來存成*.bat檔
再將無法刪除的檔案拖移至該bat檔上即可刪除
===============================
DEL F A Q %1
RD S Q %1
===============================

2010年2月24日 星期三

char array與CString直接帶入,不須轉換

char mg[256];
CString a(msg);
MessageBox((LPCTSTR)a, L"message", MB_OK);

顯示出系統錯誤訊息

// 若有任何的錯誤, 你可以呼叫下面這個 functin
// 幫你組合出錯誤訊息
void ShowError()
{
LPVOID lpMsgBuf;
/* 中文訊息
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER
FORMAT_MESSAGE_FROM_SYSTEM
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //Default language
(LPTSTR) &lpMsgBuf,0,NULL );
*/

// 英文訊息 (比較方便到 Yahoo 查別人如何解決)
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER
FORMAT_MESSAGE_FROM_SYSTEM
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,0,NULL );

MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK
MB_ICONINFORMATION );
LocalFree( lpMsgBuf );
}

2010年2月23日 星期二

[轉載]VC/ Vista / Run as administrator 權限

引用 http://www.codeproject.com/KB/vista-security/VistaElevator.aspx?df=100&forumid=368223&exp=0&select=1909847

擷取 Starting an elevated process段 使用ShellExecuteinfo 中的run as 讓系統判斷目前是否需要出現Run as administrator 提示dialog.

BOOLRunElevated( HWND hwnd,
LPCTSTR pszPath,
LPCTSTR pszParameters = NULL,
LPCTSTR pszDirectory = NULL )
{
SHELLEXECUTEINFO shex;
memset( &shex, 0, sizeof( shex) );
shex.cbSize = sizeof( SHELLEXECUTEINFO );
shex.fMask = 0;
shex.hwnd = hwnd;
shex.lpVerb = _T("runas");
shex.lpFile = pszPath;
shex.lpParameters = pszParameters;
shex.lpDirectory = pszDirectory;
shex.nShow = SW_NORMAL;

return ::ShellExecuteEx( &shex );
}

[Search keywords]
[Vista 權限 執行]
[安裝 install regsvr32 COM]
[registry 存取]
[Administrator system account privilege]