每月都有一堆總結數字要整理作報告,之前已經做好自動化用Excel VBA 去對這些檔案作大量重覆動作,不過最近可能重整檔案的存放結構,屆時不能用VBA的 multiple select去一次過選擇需要的檔案去處理。
這些檔案按日子分佈在二十多個子文件夾之中,如果不想修改現有工具的話,就要想辦法:把這些檔案複製出來,集合到一個文件夾中。在研究這個轉變的時候遇上另一個batch檔的應用,很高興的想到這些檔案的處理用.bat的方法會更容易。像這問題只用一行Code就解決了。
for /R ".\" %%f in (*.xls) do xcopy "%%f" ".\result\" /y
SyntaxFOR /R [[drive:]path] %%parameter IN (set) DO command
XCOPY source [destination] [options]
[[drive:]path] ".\" -將收集的範圍設定成現時路徑之下的文件夾
%%parameter %%f -這變數用作儲存找到的的.xls檔案,指令模式下%f代表變數的使用,而在批次檔中要寫成%%f
(set) (*.xls) -目標只是收集範圍內的所有.xls的檔案
source "%%f" -使用剛才的變數
[destination] ".\result\" -建立一個叫result的文件夾儲存目標檔案
[options] /y -不要求確認
Batch檔是一個幾新的接觸,順便記下這個第一個用到的批次檔。在用VBA處理自動列印網頁的時候,想讓使用者方便地轉換Default Printer,所以寫了幾個Batch,然後在VBA中呼叫對應旳Batch檔。
設定Default Printer:
RunDLL32.EXE printui.dll, PrintUIEntry /y /n "Nuance PDF"
更多有關 RunDLL32.EXE printui.dll, PrintUIEntry 用法的例子:http://www.robvanderwoude.com/2kprintcontrol.php
https://technet.microsoft.com/en-us/library/ee624057.aspx
沒有留言:
張貼留言