Kuni/JA1UZGのもろもろブログを最新の情報に更新

色々チャレンジしていますが、記載内容は無保証です。各自の責任でお願いします。    . .
前月 << March 2024 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>翌月
 
ENTRIES

ARCHIVES
 
Office2013のインストール
jugemに問題が有るのかは不明ですが、画像が表示されない場合が有ります。
画像が表示されない場合再読み込みリロードしてください。



setup.office.com

Windows8.1 から Windows 10 に変更した折、
Office 2013のインストールに苦労しました。
ネットサーフィンしたのですがなかなか見つりませんでした。
やっと見つけたので、今後の為の防備録です。

まずOfficeのサイトを開きます。

https://setup.office.com/

MSアカウントでログインします。

プロダクトキー入力

プロダクトキーを入力します。

以上。 (^_^)
管理者として起動 ユーザーアカウント制御
右クリック、管理者として実行

ユーザーアカウント制御

自作プログラムで管理者権限が必用な物は、アイコンを右クリックして管理者モードで起動していました。
市販のプログラム等は、起動すればユーザーアカウント制御の画面が出ます。
何故だろうと、グーグル先生に教えてもらった所、単なるテキストファイルで良いみたい。

グーグル先生に教わった物を、意味もわからず使っています。
作業は自己責任でお願いします・・責任は持てませんhi

hoge.exe を管理者として起動する場合は以下の様にすればOK。
バッチ作っておけば、瞬時に (^_^)

mt.exe -manifest manifest.txt -outputresource:hoge.exe;1

こんなパッチを作れば、hoge.exe をドラック&ドロップでOKの筈(注意:動作確認未済、未保証)
C:¥TEMP¥mt.exe -manifest C:¥TEMP¥manifest.TXT -outputresource:%1;1

必用な物
mt.exe     : 無償公開されている、Windows SDK に入っています。
midlrtmd.dll  : 同上
manifest.txt  : 以下のテキストをUTF-8形式で保管

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>


アイコンが!

アイコンが管理者モード用に変更されます。

動作検証環境
Windows 10 Pro Ver 20H2

コマンドプロンプト コンソール 文字色
コンソール出力色

Windowsになってから、コンソールの文字色変更が面倒になってます。
DOS時代はエスケープシーケンスで容易だったし、Windows前半はANSI.SYSを入れれば使えたのですが、Windows10では駄目らしい。
てなわけで、コンソール出力のカラー化に挑戦してみました。
こんなプログラムになりましたが、とても面倒・・(;_;)
DOS時代は楽ちんだった。

簡単な方法が有りましたらお知らせ下さい。

#include <windows.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
    HANDLE hstdout;
    CONSOLE_SCREEN_BUFFER_INFO coninf;

    hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
    GetConsoleScreenBufferInfo(hstdout, &coninf);    // デフォルトの表示文字の色を保存
    puts(""); // 改行
    // 文字色設定
    SetConsoleTextAttribute(hstdout, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY | 0);
    printf("青緑文字/黒"); fflush(stdout);
    SetConsoleTextAttribute(hstdout, coninf.wAttributes);    // 表示文字の色を元に戻す。
    printf(", "); fflush(stdout);
    SetConsoleTextAttribute(hstdout, /*白*/ 0x0007 | FOREGROUND_INTENSITY | BACKGROUND_RED);
    printf("白文字/赤"); fflush(stdout);
    SetConsoleTextAttribute(hstdout, coninf.wAttributes);    // 表示文字の色を元に戻す。
    printf(", "); fflush(stdout);
    SetConsoleTextAttribute(hstdout, 0 | /* BACKGROUND 白 明 */ 0x00F0);
    printf("黒文字/白"); fflush(stdout);
    SetConsoleTextAttribute(hstdout, coninf.wAttributes);    // 表示文字の色を元に戻す。
    printf("¥n¥n何かキーを押してください >"); fflush(stdout);
    getch();                        // キー入力を待つ
    puts("");
    return 0;
}
楽天Expressで配達されました
RakutenExpress

先日ビックカメラでお買物したら、配達が「楽天Express」でした。
楽天は配達余力が有るので、ビックのを引受けているのかな?
私は以下のスクリプトで荷物番号を検索しています。

注意事項
 ブログに使用しているJUGEMサーバーにバグが有り一部のスクリプトをまともに記載する事が出来ません。
 只今JUGEMに改善依頼をしていますが、やむを得ずスクリプトの2行に$を挟んでいます。
 御利用になる場合、$を削除して下さる様お願いします。

・2020/05/11 サーバーが正常動作している事を確認。
 挿入していた$記号を削除しました。
 なお、JUGEMのサポートから修正したとの連絡は有りませんでした。
 そのため、いつ修正されたのかは解りません??
・2020/05/13 JUGEMサポート担当から「修正した」とのメールが届きました。

REM ===== RakutenExpress.VBS 等言う名で保存して御利用下さい ====
Option Explicit
Dim obj, WSHShell
Const ErrMsgTxt = "楽天エクスプレス荷物番号検索エラー"
Const pageURL = "https://express.rakuten.co.jp/"

Const Account1 = "000000000000"    '←ここに荷物番号を入れる

REM ===
REM WScript IE 開始
REM ===
Set WSHShell=CreateObject("WScript.Shell")
Set obj = WScript.CreateObject("InternetExplorer.Application")
WScript.sleep(200)
obj.Navigate pageURL
WScript.sleep(200)
obj.Visible = True
S_IE_Wait obj
WScript.sleep(200)
S_IE_Activate
WScript.sleep(200)
obj.document.forms(0).elements("tn").value = Account1
obj.document.forms(0).elements(1).Click
WScript.sleep(200)
Set obj = Nothing

REM ======== IEが安定するまで待機 =======================
Private Sub S_IE_Wait ( ByRef objIE_ )
  Const TimeOut  = 30000   'ミリ秒単位
  Const CheckTime_ = 200
  Dim   t_

  t_ = 0
  Do While objIE_.busy
    t_ = t_ + CheckTime_
    If t_ > TimeOut Then
      MsgBox "IE Time Out error. [IE.busy]", _
             vbSystemModal + vbCritical, ErrMsgTxt & " [IE.busy]"
      WScript.Quit  ' メインプログラム終了
    End If
    WScript.sleep(CheckTime_)
  Loop
  t_ = 0
  Do While objIE_.Document.readyState <> "complete"
    t_ = t_ + CheckTime_
    If t_ > TimeOut Then
      MsgBox "IE Time Out error. [complete]", _
             vbSystemModal + vbCritical, ErrMsgTxt & " [complete]"
      WScript.Quit  ' メインプログラム終了
    End If
    WScript.sleep(CheckTime_) :
  Loop
End Sub

REM ======== iexplore.exe をアクティブに ============
Private Sub S_IE_Activate
Dim Lt__, Sv__, En__, Sh__, It__

WScript.sleep(200)
Set Sh__ = CreateObject("WScript.Shell")
'起動中のプロセスの一覧から iexplore.exe を検索
Set Lt__ = CreateObject("WbemScripting.SWbemLocator")
Set Sv__ = Lt__.ConnectServer
Set En__ = Sv__.InstancesOf("Win32_Process")
For Each It__ In En__
  If Not IsEmpty(It__.ProcessID) Then
    If InStr(It__.Description, "iexplore.exe") Then
       Sh__.AppActivate(It__.ProcessID)
    End If
  End If
Next
WScript.sleep(200)
Set Sh__ = Nothing
Set En__ = Nothing
Set Lt__ = Nothing
End Sub
REM ========== ここまで ==========

SBS即配便の追跡
カモ

最近・・一都三県向けにSBS即配便を使う通販サイトが増えています。
これもまた、追跡しにくい
てなわけで、またまたスクリプトを作ってみました。
別サイト用のスクリプトを最小限の修正で利用していますので、細かい所は見なかった事にして下さい。

以下を hogehogeSBS.vbs 等の名称で保存して下さい。
荷物の番号はゼロの所に適当に入れて下さい。
とりあえず、5個の荷物まで同時に追跡出来るようにしてあります。

REM --- ここから ----
Option Explicit
Dim obj, WSHShell
Const ErrMsgTxt = "SBS即配便荷物番号検索エラー"
Const pageURL = "https://www.saqura-web.com/sbs_ltrc/"

Const Account1 = "0000000000000" 'ここに荷物番号を入れる
Const Account2 = ""
Const Account3 = ""
Const Account4 = ""
Const Account5 = ""

REM ===
REM WScript IE 開始
REM ===
Set WSHShell=CreateObject("WScript.Shell")
Set obj = WScript.CreateObject("InternetExplorer.Application")
WScript.Sleep(200)
obj.Navigate pageURL
WScript.Sleep(200)
obj.Visible = True
S_IE_Wait obj
WScript.Sleep(200)
S_IE_Activate
WScript.Sleep(200)
obj.document.forms(0).elements(5).value = Account1
WScript.Sleep(100)
obj.document.forms(0).elements(9).value = Account2
WScript.Sleep(100)
obj.document.forms(0).elements(13).value = Account3
WScript.Sleep(100)
obj.document.forms(0).elements(17).value = Account4
WScript.Sleep(100)
obj.document.forms(0).elements(21).value = Account5
WScript.Sleep(100)
obj.document.forms(0).elements(45).Click
WScript.Sleep(200)
Set obj = Nothing

REM ======== IEが安定するまで待機 =======================
Private Sub S_IE_Wait ( ByRef objIE_ )
Const TimeOut = 30000 'ミリ秒単位
Const CheckTime_ = 200
Dim t_

t_ = 0
Do While objIE_.busy
t_ = t_ + CheckTime_
If t_ > TimeOut Then
MsgBox "IE Time Out error. [IE.busy]", _
vbSystemModal + vbCritical, ErrMsgTxt & " [IE.busy]"
WScript.Quit ' メインプログラム終了
End If
WScript.Sleep(CheckTime_)
Loop
t_ = 0
Do While objIE_.Document.readyState <> "complete"
t_ = t_ + CheckTime_
If t_ > TimeOut Then
MsgBox "IE Time Out error. [complete]", _
vbSystemModal + vbCritical, ErrMsgTxt & " [complete]"
WScript.Quit ' メインプログラム終了
End If
WScript.Sleep(CheckTime_) :
Loop
End Sub

REM ======== iexplore.exe をアクティブに ============
Private Sub S_IE_Activate
Dim Lt__, Sv__, En__, Sh__, It__

WScript.Sleep(200)
Set Sh__ = CreateObject("WScript.Shell")
'起動中のプロセスの一覧から iexplore.exe を検索
Set Lt__ = CreateObject("WbemScripting.SWbemLocator")
Set Sv__ = Lt__.ConnectServer
Set En__ = Sv__.InstancesOf("Win32_Process")
For Each It__ In En__
If Not IsEmpty(It__.ProcessID) Then
If InStr(It__.Description, "iexplore.exe") Then
Sh__.AppActivate(It__.ProcessID)
' Exit For
End If
End If
Next
WScript.Sleep(200)
Set Sh__ = Nothing
Set En__ = Nothing
Set Lt__ = Nothing
End Sub
REM --- ここまで ---
アマゾンの配送業者 デリバリープロバイダ の荷物追跡
路肩の花

最近・・アマゾンの配達は「デリバリープロバイダ」となる事が多い様です。
配達コストダウンの為と思われますが、追跡がしにくい
てなわけで、スクリプトを作ってみました。
別サイト用のスクリプトを最小限の修正で利用していますので、本来 "TrackingNumber1" とするべき所が "Account1" となっています。
細かい所は見なかった事にして下さい。

以下を hogehoge.vbs 等の名称で保存して下さい。
荷物の番号はゼロの所に適当に入れて下さい。
とりあえず、5個の荷物まで同時に追跡出来るようにしてあります。

REM --- ここから ----
Option Explicit
Dim obj, WSHShell
Const ErrMsgTxt = "デリバリープロバイダ荷物番号検索エラー"
Const pageURL = "https://track-a.tmg-tms.com/cts/TmgCargoSearchAction.do?method_id=INIT"

Const Account1 = "000000000000" 'ここに荷物番号を入れる
Const Account2 = ""
Const Account3 = ""
Const Account4 = ""
Const Account5 = ""

REM ===
REM WScript IE 開始
REM ===
Set WSHShell=CreateObject("WScript.Shell")
Set obj = WScript.CreateObject("InternetExplorer.Application")
WScript.Sleep(200)
obj.Navigate pageURL
WScript.Sleep(200)
obj.Visible = True
S_IE_Wait obj
WScript.Sleep(200)
S_IE_Activate
WScript.Sleep(200)
obj.document.forms(0).elements("inputData[0].inq_no").value = Account1
WScript.Sleep(100)
obj.document.forms(0).elements("inputData[1].inq_no").value = Account2
WScript.Sleep(100)
obj.document.forms(0).elements("inputData[2].inq_no").value = Account3
WScript.Sleep(100)
obj.document.forms(0).elements("inputData[3].inq_no").value = Account4
WScript.Sleep(100)
obj.document.forms(0).elements("inputData[4].inq_no").value = Account5
WScript.Sleep(100)
obj.document.forms(0).elements("search").Click
WScript.Sleep(200)
Set obj = Nothing

REM ======== IEが安定するまで待機 =======================
Private Sub S_IE_Wait ( ByRef objIE_ )
Const TimeOut = 30000 'ミリ秒単位
Const CheckTime_ = 200
Dim t_

t_ = 0
Do While objIE_.busy
t_ = t_ + CheckTime_
If t_ > TimeOut Then
MsgBox "IE Time Out error. [IE.busy]", _
vbSystemModal + vbCritical, ErrMsgTxt & " [IE.busy]"
WScript.Quit ' メインプログラム終了
End If
WScript.Sleep(CheckTime_)
Loop
t_ = 0
Do While objIE_.Document.readyState <> "complete"
t_ = t_ + CheckTime_
If t_ > TimeOut Then
MsgBox "IE Time Out error. [complete]", _
vbSystemModal + vbCritical, ErrMsgTxt & " [complete]"
WScript.Quit ' メインプログラム終了
End If
WScript.Sleep(CheckTime_) :
Loop
End Sub

REM ======== iexplore.exe をアクティブに ============
Private Sub S_IE_Activate
Dim Lt__, Sv__, En__, Sh__, It__

WScript.Sleep(200)
Set Sh__ = CreateObject("WScript.Shell")
'起動中のプロセスの一覧から iexplore.exe を検索
Set Lt__ = CreateObject("WbemScripting.SWbemLocator")
Set Sv__ = Lt__.ConnectServer
Set En__ = Sv__.InstancesOf("Win32_Process")
For Each It__ In En__
If Not IsEmpty(It__.ProcessID) Then
If InStr(It__.Description, "iexplore.exe") Then
Sh__.AppActivate(It__.ProcessID)
' Exit For
End If
End If
Next
WScript.Sleep(200)
Set Sh__ = Nothing
Set En__ = Nothing
Set Lt__ = Nothing
End Sub
REM --- ここまで ---
アマゾンでのお買い物 (dhtexpress) メモ
路肩の花

お買い物したら、中国から発送の様で配送業者が、dhtexpressとの事。
配送業者:dhtexpress.com
お問い合わせ伝票番号:xxxxxxxxxxxCN
配送会社のHPに追跡番号を入れるのが面倒で、スクリプトを作ってみました。
HTML、VBS両方共良くわからないので、やっつけ仕事。
動くからOKとhi
動作保証不可!
御利用する方の自己責任でお願いします。
メインウインドウに直接PAGE-DOWNを送る方法があると思うけど、TABをいっぱい送ってごまかしてます。
TABの必用数は、IEの利用環境により変わるので調整して下さい。

REM === DHTEXPRESS.VBS === 荷物番号追跡 ここから 
Option Explicit
Dim obj, WSHShell
Const DempyouNonver = "xxxxxxxxxxxCN" ' xxxxxxxxxxxCNにアマゾンから通知された番号を記載
Const ErrMsgTxt = "http://dhtexpress.com/ アクセス失敗"
Const pageURL = "http://dhtexpress.com/"

REM ===
REM WScript IE 開始
REM ===
Set WSHShell=CreateObject("WScript.Shell")
Set obj = WScript.CreateObject("InternetExplorer.Application")
obj.Navigate pageURL
obj.Visible = True
' obj.FullScreen = True
' 画面を1000 x 700 にする
S_IE_Wait obj
WScript.Sleep(200)
obj.Width = 1000
obj.Height = 700
obj.Left = 0
obj.Top = 0
WScript.Sleep(200)
obj.document.getElementsByTagName("input")(0).value = DempyouNonver
obj.document.getElementsByTagName("button")(0).click
WScript.Sleep(200)
S_IE_Wait obj
WScript.Sleep(200)
S_IE_Activate
WSHShell.SendKeys "{TAB}" ' {TAB}{TAB}・・としても良いけど、
WScript.Sleep(100) ' 処理が間に合わない事が有ったので
WSHShell.SendKeys "{TAB}" ' 処理毎に0.1秒待機してます
WScript.Sleep(100) ' {TAB}の回数は、
WSHShell.SendKeys "{TAB}" ' IEの表示状態により変わるので調整して下さい。
WScript.Sleep(100)
WSHShell.SendKeys "{TAB}"
WScript.Sleep(100)
WSHShell.SendKeys "{TAB}"
WScript.Sleep(100)
WSHShell.SendKeys "{TAB}"
WScript.Sleep(100)
WSHShell.SendKeys "{TAB}"
WScript.Sleep(100)
WSHShell.SendKeys "{PGDN}" ' 追跡を画面中央に表示
WScript.Sleep(100)
Set obj = Nothing
REM ======== IEが安定するまで待機 ======================= 
Private Sub S_IE_Wait ( ByRef objIE_ )
Const TimeOut = 30000 'ミリ秒単位
Const CheckTime_ = 200
Dim t_

t_ = 0
Do While objIE_.busy
t_ = t_ + CheckTime_
If t_ > TimeOut Then
MsgBox "IE Time Out error. [IE.busy]", _
vbSystemModal + vbCritical, ErrMsgTxt & " [IE.busy]"
WScript.Quit ' メインプログラム終了
End If
WScript.Sleep(CheckTime_)
Loop
t_ = 0
Do While objIE_.Document.readyState <> "complete"
t_ = t_ + CheckTime_
If t_ > TimeOut Then
MsgBox "IE Time Out error. [complete]", _
vbSystemModal + vbCritical, ErrMsgTxt & " [complete]"
WScript.Quit ' メインプログラム終了
End If
WScript.Sleep(CheckTime_) :
Loop
End Sub

REM ======== iexplore.exe をアクティブに ============
Private Sub S_IE_Activate
Dim Lt__, Sv__, En__, Sh__, It__

WScript.Sleep(200)
Set Sh__ = CreateObject("WScript.Shell")
'起動中のプロセスの一覧から iexplore.exe を検索
Set Lt__ = CreateObject("WbemScripting.SWbemLocator")
Set Sv__ = Lt__.ConnectServer
Set En__ = Sv__.InstancesOf("Win32_Process")
For Each It__ In En__
If Not IsEmpty(It__.ProcessID) Then
If InStr(It__.Description, "iexplore.exe") Then
Sh__.AppActivate(It__.ProcessID)
WScript.Sleep(200)
Set Sh__ = Nothing ' exit for でも良いと思います
Set En__ = Nothing
Set Lt__ = Nothing
exit sub
End If
End If
Next
WScript.Sleep(200)
Set Sh__ = Nothing
Set En__ = Nothing
Set Lt__ = Nothing
End Sub
便利で危険なROBOCOPY
とても便利で活用していますが、とても危険なコマンドでもあります。
注意して自己責任で御利用下さい。
記載ミスが有りましても、一切責任は持てません。


BAKUP先

上がハムログフォルダをバックアップした折りのROBOCOPY先です。
コマンドは以下の様になります。
バックアップするフォルダに以下のスクリプトを作成して下さい。
(HAMLOGをバックアップするならC:¥HAMLOG¥ROBOMIR.CMDとして)
「D:¥BACKUP」は、必要に応じて適当に書き換えて下さい。
なお、コマンドラインオプションが多数有るのでrobocopy.exeの行がまたがって表示される場合が有りますのでご注意下さい。

REM === ROBOMIR.CMD ====
robocopy.exe .¥ D:¥BACKUP /MIR /XD "System Volume Information" /XD "$Recycle.Bin" /LOG:"%USERPROFILE%¥Desktop¥LOG.TXT" /R:0 /W:0 /NP /NDL /TEE /XJD /XJF /FFT
REM =====



C:¥HAMLOGをD:¥BACKUPへバックアップする場合の使用方法は、コマンドラインから以下の様に打ち込んで下さい。

C:¥>CD C:¥HAMLOG
C:¥HAMLOG>ROBOMIR.CMD

このスクリプトを実行したフォルダから、D:¥BACKUPフォルダにサブフォルダも含めてミラーします。

★重要な注意
コピーではありませんバックアップです。
先フォルダに有る中身は全て元と同じになります。
元に無いデータは、問答無用で全て削除されます。


バックアップ先のD:¥BACKUPと言うフォルダが無い場合、フォルダを作成してハックアップされます。

2度目以降は、以下の様になります。
・変更の無いファイルはそのまま
・変更の有ったファイルは上書き
・元から削除されている場合、バックアップ先から削除



LOG

デスクトップにログを作成します。

LOGの中身

ログの中身はこんな感じ。
適当に削除して下さい。



ROBOCOPYの使い方は、コマンドラインから
ROBOCOPY /?
で、ご覧下さい。
Buffalo NAS が自動作成する迷惑フォルダ削除 メモ
勝手に作る無駄フォルダ

★注意事項
 以下私の環境での動作確認しかしていません。
 自己責任で御利用下さい。
 NASのデータが吹っ飛んでも責任は負えません。


BuffaloのLS520DNですが、自動的にゴミファイル・フォルダを作成すると言うタコ仕様になっています。
(スマホ等でアクセスする場合のサムネイルの様です・・私は純粋なNAS用途しか使わないので全く不要)
これが、ルートフォルダだけなら容易に削除出来るのですが、深いフォルダ迄しっかりとゴミを作成しています。
さらに迷惑なのが、作ったり・作らなかったりと、とてもいい加減。
下記が、迷惑フォルダの一覧。

2018/05/08  14:50    <DIR>          .thumbnail
2018/05/08  14:50    <DIR>          .webaxs_3L
2018/05/08  14:50    <DIR>          .webaxs_L
2018/05/08  14:50    <DIR>          .webaxs_LL
2018/05/08  14:50    <DIR>          .webaxs_M
2018/05/08  14:50    <DIR>          .webaxs_S
2018/05/08  14:50    <DIR>          .webview

最初のうちは、エクスプローラーでシコシコと消していたのですが、突然復活してしまうと言う生命力の強さを見せつけられました。

で作成したのが、以下のバッチ。
注意事項、サブフォルダも含めて問答無用で削除します。
適当な名前でNASに保存して下さい。たとえば、「GomiSakujyoForBuffaloNAS.CMD」。
実行はダブルクリック。
実行時にセキュリティ警告が出ますが、ご自身で判断して下さい。

REM === GomiSakujyoForBuffaloNAS.CMD ===
for /R %%d in (.webaxs_S .webaxs_3L .thumbnail .webaxs_LL .webview .webaxs_L .webaxs_M) do rmdir /S /Q "%%d"
REM === ここまで ===


購入者に無断でサムネイル作るなんて、ゴミ仕様は止めてくれ => Buffalo

蛇足
バッチスクリプトとしてではなく、コマンドラインから直接使う場合は %% => % として下さい。

for /R %d in (.webaxs_S .webaxs_3L .thumbnail .webaxs_LL .webview .webaxs_L .webaxs_M) do rmdir /S /Q "%d"

追加画像 2019/11/22
詳細はコメントを参照して下さい。
共有フォルダー
XCOPYでバックアップのお話
路肩の花

●とりあえず
WindowsにはROBOCOPYと言う便利なコマンドが有るけどそれば後日?
MS−DOS時代からのXCOPYの機能について

●除外機能
XCOPYでフォルダやファイルの除外機能「/EXCLUDE:」が有ると言うので時短対策。
TEMPフォルダをバックアップ対象から除外しようと画策。
しかしうまく行かなくて。。。私が勘違いしていただけなんですが・・・

●失敗
==
XCOPY "C:¥hogehoge¥" "D:¥hogeBack¥" /e /c /h /d /Y /EXCLUDE:C:¥hogehoge¥TEMP¥
===

オプションエラーで動いてくれない。 (;_;)

グーグル先生でネットを徘徊・・・判明
/EXCLUDE:オプションは除外フォルダ名を入れるんじゃ無くて、除外一覧を記載したテキストファイルを指定するみたい。
でも、バッチCMDの他にテキストファイルを追加と言うのは管理上面倒。
バッチ1つで管理したい。
てな訳で、以下の様にして成功しました。 (^_^)

●成功
===
ECHO C:¥hogehoge¥TEMP¥ > __TEMP__.TXT
XCOPY "C:¥hogehoge¥" "D:¥hogeBack¥" /e /c /h /d /Y /EXCLUDE:__TEMP__.TXT
DEL __TEMP__.TXT
===

●オプションの説明 (XCOPY /? から一部抜粋)
  /E          ディレクトリまたはサブディレクトリが空であってもコピーします。
  /C          エラーが発生してもコピーを続けます。
  /H          隠しファイルやシステム ファイルもコピーします。
  /D          日付が指定されなかったときは、コピー元の日付がコピー先の日付より新しいファイルだけをコピーします。
  /Y          既存のファイルを上書きする前に確認のメッセージを表示しません。
  /EXCLUDE:ファイル1[+ファイル2][+ファイル3]...
              コピーの除外対象を特定するための文字列を記述したファイルを指定します (複数指定可)。