【Windows環境】SES現場で何度も助けられたコード集

に公開

些細な手作業を簡略化してくれるコード達です。

現場でコソッとやっておくと楽に仕事ができるかもしれません。追加で思いついたらここに記述していきますね。

全てのExcelシートでカーソルをA1の位置に合わせる

Excelで資料をまとめた時は、カーソル位置(アクティブセル)をA1にして納品するのが普通です。下記のコードはコピペで使用できます。一応、Mac版にも対応しています。

Sub AlignSheetsToA1()  
Dim ws As Worksheet  
For Each ws In ThisWorkbook.Worksheets  
ws.Activate  
Application.Goto Reference:=ws.Range("A1"), Scroll:=True  
Next ws  
End Sub

現在時刻でフォルダを生成するバッチ

大量にログを作成するときや、実行ファイルを生成する時(特に組み込み系で)に役立つバッチ処理です。

@echo off  
setlocal enabledelayedexpansion  
  
rem 現在の日付と時刻を取得  
for /f "tokens=1-5 delims=/:- " %%a in ("%date% %time%") do (  
set "YYYY=%%a"  
set "MM=%%b"  
set "DD=%%c"  
set "HH=%%d"  
set "NN=%%e"  
)  
set "datetime=%YYYY%-%MM%-%DD%_%HH%-%NN%"  
  
rem フォルダを作成  
mkdir "!datetime!"  
  
endlocal

現在時刻でMDファイルを生成するバッチ

大量にログを取ったり、メモを取ったりするのに役立つバッチ処理です。マークダウンに対応できるようにMD形式にしています。
テキストファイルにする場合は"log_%t%.md" ここを修正しましょう。

@echo off
set "t=%date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%"
type nul > "log_%t%.md"

共有フォルダに接続するバッチ

共有フォルダにダブルクリックで接続できるバッチ処理です。現場によってはパスワード保存が禁止で毎回手打ちしなければいけませんが、そのような場合でもバッチで接続は基本OKです。

@echo off
setlocal

rem ↓ここを書き換えてください
set "SERVER=\\192.168.1.4"
set "USERNAME=ユーザー名をここに"
set "PASSWORD=パスワードをここに"

net use %SERVER% /user:%USERNAME% %PASSWORD%

if %errorlevel% neq 0 (
    echo connect NG
) else (
    echo connect OK
)
endlocal
pause

バッチを管理者権限で実行する

バッチファイルの実行に管理者権限が必要な場合は、既存のコードに以下を挿入します。毎回、右クリックして「管理者権限で実行」をする手間が省けます。

@echo off
:: 管理者権限で実行しているか確認
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo 管理者権限が必要です。再起動します...
    powershell -Command "Start-Process '%~f0' -Verb runAs"
    exit /b
)

CapsLockキーをCtrlキーとして使用するバッチ(追記)

CapsLockキーが不要な場合は、小指の負担軽減ができます。
エンコードはANSIで保存して、管理者権限での実行が必要です。

@echo off
echo レジストリを変更しています...
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /t REG_BINARY /d 0000000000000000020000001d003a0000000000 /f
echo 完了しました。PCを再起動すると反映されます。
pause

CapsLockキーに戻すバッチ

同じく、エンコードはANSIで保存して、管理者権限での実行が必要です。

@echo off
echo CapsLockの変換を元に戻しています...
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout" /v "Scancode Map" /f
echo 削除が完了しました。PCを再起動すると元に戻ります。
pause



以上、炎上案件を何度も一緒に乗り越えてきたコード達でした。

Discussion