2018年4月21日

TiddlyWiki建個檔案連結產生器

給TiddlyWiki建個歸檔軟體

筆記軟體雖然已經很多樣化,且手機的 app 應用程式也相當專業,但是要寫報告或是交接手冊給人時,我還是會選擇使用 TiddlyWiki。

TiddlyWiki 可以外部連結到其他檔案,當我需要給人 PDF 或 RAR 檔案時,我只需要寫上個連結就能夠給他。但是每回寫檔案連結時,都覺得相當無奈,你一定會經過這幾個步驟:

  1. 複製檔案到特定資料夾
  2. 複製檔案名稱與副檔名
  3. 進到 TiddlyWiki 新增連結

目標功能

  1. 自動加上時間碼(YYYYMMDD_hhmmss)
  2. 依照檔案類型分類(取得副檔名)

之前腦袋一直有個想法,認為用 Batch 應該就能夠處理這些問題,特別是我平常就有用 Deskbox 以日期歸檔,整體要解決的目標應該是:
  1. 取得日期與時間
  2. 取得拖曳進來的檔案名稱
  3. 分析檔名與副檔名
  4. 複製結果到剪貼簿

沒辦法解決的問題

連結的直槓(vertical bar)無法匯出,因此用 @ 代替,手動修改一個符號應該還行。

結論


REM 設定歸檔資料夾
SET Mailbox=D:\lol\

REM 取得日期
For /f "tokens=1-3 delims=/ " %%a in ('date /t') do (SET date=%%a%%b%%c)

REM取得時間
SET CURRENTTIME=%TIME%
IF "%CURRENTTIME:~0,1%"==" " (SET CURRENTTIME=0%CURRENTTIME:~1%)
FOR /F "tokens=2-4 delims=/ " %%A IN ('DATE /T') DO (
SET TIMESTAMP=%%C%%A%%B %CURRENTTIME%
SET HOUR=%CURRENTTIME:~0,2%
SET MIN=%CURRENTTIME:~3,2%
SET SEC=%CURRENTTIME:~6,2%
)
SET datestamp=%date%%HOUR%%MIN%%SEC%


REM 擷取拖曳的檔案名稱
SETlocal enableExtensions disableDelayedExpansion
ECHO Command line: %0 %*
ECHO Command line argument 1: "%~1"
endlocal

REM 分析名稱
SET Dragfile=%~1
FOR %%i IN ("%Dragfile%") DO (
SET filedrive=%%~di
SET filepath=%%~pi
SET filename=%%~ni
SET fileextension=%%~xi
)

REM 取得沒有逗點的副檔名
SET fileextensionnodot=%fileextension:~1,99%
ECHO %fileextensionnodot%


REM 歸檔名稱格式時間
SET NewName=%fileextensionnodot%_%datestamp%

REM 複製檔案到資料夾
ECHO F|xcopy %Dragfile% "%Mailbox%%NewName%%fileextension%"

REM 複製TiddlyWiki連結格式
SET TWcode=[ext[%filename%@%Mailbox%%NewName%%fileextension%]]
ECHO %TWcode% | clip



沒有留言: