2022年1月13日 星期四

以PowerShell指令查詢Outlook之GAL全域通訊清單


步驟1:執行cmder程式,
步驟1-1:按+ Create new console
步驟1-2:選1:{Shells}
步驟1-3:選6:{PowerShells(Admin)}


步驟2: 將下列指令,逐行貼上 (註解: 

第3行  | where {$_ -match '@taipei.abc.com.tw'}  表示篩選ABC公司之台北分支辦公室 、

           | Sort-Object -Property department  以部門別排序後再產出結果  )

 

$OUTLOOK = New-Object -ComObject "Outlook.application"

$Galist=$outlook.getnamespace("MAPI").AddressLists.Item("全域通訊清單").AddressEntries

$Galist|%{$_.GetExchangeUser() |select companyname,department,Name,PrimarySmtpAddress,BusinessTelephoneNumber,JobTitle} | where {$_ -match '@taipei.abc.com.tw'}  | Sort-Object -Property department > c:\users\username\Gal_Taipei.txt


步驟3:檢視C槽資料夾,產出結果 c:\users\username\Gal_Taipei.txt


相關介面:
cmder命令提示字元(PowerShell)


相關GAL查詢
EXCEL VBA執行GAL查詢



2022年1月12日 星期三

正規表示式Regular Expression ( FQDN filter)

 將純文字格式下,篩選出FQDN (Domain Name名稱)

TEXTのうちドメイン名までを正規表現を用いて抽出する(FQDN)
 Regular expression which will match a valid domain name

 

背景說明:

公司因業務需要,原始來源為PDF格式,需將其內文中之FQDN網域位址,提取出來。可先經由pdftotext將PDF檔,轉換成TEXT格式後,再經由grep指令將FQDN抽出。


下列為BATCH批次檔

 
rem  將PDF檔先轉換成暫存純文字檔案
pdftotext %1 txtTempPDF.txt

rem 將PDF轉換完成為TEXT文字檔後,經由grep工具取出FQDN網域相關資訊
grep -E '[a-zA-Z0-9.\-_]{1,63}\.[a-zA-Z0-9.\-_]{1,63}' txtTempPDF.txt  -o > Tipip_FQDN.txt

rem 開啟經由grep篩選出之FQDN資訊
explorer Tipip_FQDN.txt

 

相關篩選IP參考資訊:

 (OpenSource)Pdftotext  ,PDF文字轉換工具

https://myblog-johnnyit.blogspot.com/2021/09/pdfip.html

 

2021年9月27日 星期一

PDF檔轉換成純文字檔,並抽取出IP資訊

Regular expression IPv4 addresses cover the range 0.0.0.0 to 255.255.255.255
IPv4 アドレスにマッチする正規表現

步驟一:

備妥PDF轉換成TEXT環境套裝程式

依作業系統環境,選擇下載套裝程式
https://miktex.org/download

步驟二:
安裝執行basic-miktex
備妥PDF轉換純文字程式,PDFTOTEXT

步驟三:
下列為BATCH批次檔
rem  將PDF檔先轉換成暫存純文字檔案
pdftotext %1 txtTempPDF.txt

rem 將PDF轉換完成為TEXT文字檔後,經由grep工具取出IP資訊
grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' txtTempPDF.txt  -o > Tipip.txt

rem 開啟經由grep篩選出之IP資訊
explorer Tipip.txt



參考資訊:
grep 過濾篩選指令

Windows環境,直接執行UnixLike指令

Utility programs (e.g. "grep") in the cygwin bash environment 相關執行檔案


2020年9月16日 星期三

auto-py-to-exe 轉換PY程式成為EXE

Step1:

安裝執行auto-py-to-exe圖形GUI界面之PYTHON轉換EXE套件程式

Step2:

將前個PYTHON程式( PYTHON旋轉PDF之程式載入),即可產出EXE執行檔


參考資訊:

auto-py-to-exe PYTHON轉換成EXE執行檔套件


PYTHON提供旋轉rorate PDF

下面為PYTHON自訂旋轉PDF (將下列紅色部分,貼在Notepad記事本,另存成RoratePDF.py)

 # importing the required modules彙入相關必要之模組 

import PyPDF2 

import sys

#'開啟檔案總管 (開啟轉換後之檔案使用)'

import subprocess

#'開啟GUI 取得來源檔(找出欲旋轉之PDF檔案)

import tkinter as tk

from tkinter import filedialog


root = tk.Tk()

root.withdraw()


FilePathName = filedialog.askopenfilename(initialdir = "/",title = "Select file for rotate (選擇欲旋轉之PDF檔案)",filetypes = (("PDF files","*.pdf"),("all files","*.*")))


  

def PDFrotate(origFileName, newFileName, rotation): 

  

    # creating a pdf File object of original pdf 

    pdfFileObj = open(origFileName, 'rb') 

      

    # creating a pdf Reader object 

    pdfReader = PyPDF2.PdfFileReader(pdfFileObj) 

  

    # creating a pdf writer object for new pdf 

    pdfWriter = PyPDF2.PdfFileWriter() 

      

    # rotating each page 

    for page in range(pdfReader.numPages): 

  

        # creating rotated page object 

        pageObj = pdfReader.getPage(page) 

        pageObj.rotateClockwise(rotation) 

  

        # adding rotated page object to pdf writer 

        pdfWriter.addPage(pageObj) 

  

    # new pdf file object 

    newFile = open(newFileName, 'wb') 

      

    # writing rotated pages to new file 

    pdfWriter.write(newFile) 

  

    # closing the original pdf file object 

    pdfFileObj.close() 

      

    # closing the new pdf file object 

    newFile.close() 

      

  

def main(): 

  

    # original pdf file name 

    origFileName = FilePathName

     

    # new pdf file name 

    newFileName = 'rotated_example.pdf'

      

    # rotation angle 自訂旋轉角度

    rotation_data = int(input("Enter a rotation angle(90、180): "))

      

    # calling the PDFrotate function 

    PDFrotate(origFileName, newFileName, rotation_data) 

      

if __name__ == "__main__": 

    # calling the main function 

    main() 


ListALLCD_2_DISK 僅列出全數光碟之檔案,另獨立出各目錄

將下列紅色部分,另存新檔至桌面   ListALLCD_2_DISK.cmd  ,存檔後點選執行。


rem  將前次處理舊檔案予以清除d:\listcd.txt

SET MYFILE="d:\listcd.txt"

IF EXIST %MYFILE% DEL /F %MYFILE%


rem 假設光碟槽在E槽

dir e: /s/w/o/p/a:-d >>d:\listcd.txt


rem 利用EXCEL檔,去開啟光碟臚列出全數檔案(依各自目錄,僅列出檔案),但EXCEL檔路徑,可能要自行修改

"C:\Program Files\Microsoft Office\Office16\EXCEL.EXE" d:\listcd.txt


參考資訊:

DIR命令提示資訊

(日文)dir 命令提示 列出檔案


2018年10月26日 星期五

以命令提示方式,將OFFICE轉成ODF開放格式檔

LibreOfficeのコマンドライン変換機能を使ってODF、ODTを作成する。
命令提示列,無需開啟主程式,即可轉換OFFICE檔案,成 開放格式檔。



Step1:下載 ODF文件應用工具

Step2:安裝 NDC ODF Application Tools

Step3:將下面紅色部分,貼於記事本(Notepad.exe)中,並另存新檔名至桌面成ConvertOffice2ODF.cmd

@echo off
setlocal
cd /d %~dp0

rem 如附加檔為XLSX格式,則至XLSX_ODS1位置執行轉換
if %~x1 EQU .xlsx  goto XLSX_ODS
if %~x1 EQU .xls  goto  XLS_ODS
if %~x1 EQU .docx goto  DOCX_ODT
if %~x1 EQU .doc  goto  DOC_ODT
if %~x1 EQU .CSV  goto  DOCX_ODT

:non_Office
echo "本批次檔,僅供轉換WORD及EXCEL "
pause
goto end

:DOCX_ODT
start /wait soffice --headless --convert-to odt %1 --outdir %userprofile%\desktop
goto end

:DOC_ODT
start /wait soffice --headless --convert-to odt %1 --outdir %userprofile%\desktop
goto end

rem 執行轉換成ODS格式
:XLSX_ODS
start /wait soffice --headless --convert-to ods %1 --outdir %userprofile%\desktop
goto end

:XLS_ODS
start /wait soffice --headless --convert-to ods %1 --outdir %userprofile%\desktop
goto end

:end
REM 以檔案總管,開啟 桌面,並查詢剛產出之ODF、ODS檔
explorer %userprofile%\desktop



Step4:
將欲合併之檔案,Drag and drop拖放至桌面 ConvertOffice2ODF.cmd上方,即可自動合併成單一ODF/ODS檔




新增右鍵開啟(),將下列紫色部分
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\2_OpenDocument]
@="Convert Office to OpenDocument(ODF/ODS)"

[HKEY_CLASSES_ROOT\*\shell\2_OpenDocument\command]
@="d:\\ODF\\ConvertOffice2ODF.cmd \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\2_OpenDocument]
@="Convert Office to OpenDocument(ODF/ODS)"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\2_OpenDocument\command]
@="d:\\ODF\\ConvertOffice2ODF.cmd \"%1\""



相關檔案下載: