Windows treeコマンドの結果をエクセルに貼れるように整形
「├─|└─|│ | |│」
上記の「」内の文字列を\tに正規表現置換
細かく書くと以下。順次置換していっても同じ結果
「├─」をタブ文字に置換
「└─」をタブ文字に置換
「│ 」をタブ文字に置換
「 」をタブ文字に置換
「│」をタブ文字に置換
C:.
│ 001.txt
│ 002.txt
│ tree.xlsx
│
└─aaa
├─aaa01
│ aaa01.txt
│
└─bbb01
bbb01.txt
上記が以下になる。

エクセルにペタッと貼り付けられる。インデントがいい感じ。

Windows batファイルでシェアポイントのエクセルファイルを開く
●編集可能で開く
start "" "ms-excel:ofe|u|パス"
●読取専用で開く。「ブックの編集」ボタンが出てきて押せば編集も可能。
start "" "ms-excel:パス"
●パスについて
・エクセルの「ファイルの場所」からコピーしたURLは半角スペースが%20になるが、これを本物の半角スペースにしてやると開けるようになる。
ファイル・フォルダに現在日時を付ける ps
ファイル・フォルダに現在日時を付ける.ps1
# エラー有無 $IsError = 0; # 受け取ったファイルに対して以下の処理を実行 foreach ($Path1 in $args) { Write-Output "" # ファイルが存在する場合 if (Test-Path $Path1) { # 現在日時を取得 $CurrentTime = Get-Date -Format "yyyyMMdd_HHmmss" # フォルダの場合 if ( (Get-Item $Path1) -is [System.IO.DirectoryInfo] ) { Write-Output ■フォルダ:$Path1 $NewFilePath = (Split-Path -Leaf $Path1) + "_" + "$CurrentTime" # Write-Output $NewFilePath } else { # ファイルの場合 Write-Output ■ファイル:$Path1 # 拡張子以外のファイル名を取得 $FileName = [System.IO.Path]::GetFileNameWithoutExtension($Path1) # 拡張子を取得 $Extension = [System.IO.Path]::GetExtension($Path1) # 新しいファイル名を作成 $NewFileName = "$FileName" + "_" + "$CurrentTime" + "$Extension" # ファイルパス $NewFilePath = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($Path1), $NewFileName) #Write-Output NewFilePath:$NewFilePath } # リネーム ※ファイルがロックされているとここでエラーが起きる Rename-Item -Path $Path1 -NewName $NewFilePath # エラーの場合、エラーフラグオン if ($? -ne "True"){ #Write-Output "Error:「$Error」" $IsError = 1; } else { Write-Output "Renamed $Path1 to $NewFilePath" } } else { # ファイルが存在しない場合 Write-Output "File not found: $Path1" } } exit $IsError
ファイル・フォルダに現在日時を付ける【複数可】.cmd
echo off rem 概要 rem 指定された複数ファイル・フォルダに以下の処理を実施 rem ①ファイル名末尾に現在日時[_yyyymmdd_hhmmss]を付与 rem rem 使い方 rem このcmdファイルにファイル(複数可)をドラッグアンドドロップ rem rem 注意 rem 選択ファイル数には限界があります(バッチの引数の最大文字数に依存) echo 【バッチ】のパラメータ:%* echo - rem ■powershellの実行 powershell -NoProfile -ExecutionPolicy RemoteSigned -File "%~dp0\ファイル・フォルダに現在日時を付ける.ps1" %* rem echo 戻り値:%ERRORLEVEL% rem エラーがある場合は一時停止 IF %ERRORLEVEL% == 1 ( echo エラーあり pause ) rem %~nx0はバッチファイル名 rem echo 【バッチ】%~nx0の処理終了
ファイル、フォルダに更新日時をつけるPowerShell
ファイル・フォルダに更新日時を付ける.ps1
# エラー有無 $IsError = 0; # 受け取ったファイルに対して以下の処理を実行 foreach ($Path1 in $args) { Write-Output "" # ファイルが存在する場合 if (Test-Path $Path1) { # 更新日時を取得 $LastWriteTime = (Get-Item $Path1).LastWriteTime # 更新日時をyyyyMMdd_HHmmss形式にする $FormattedTime = $LastWriteTime.ToString("yyyyMMdd_HHmmss") # フォルダの場合 if ( (Get-Item $Path1) -is [System.IO.DirectoryInfo] ) { Write-Output ■フォルダ:$Path1 $NewFilePath = (Split-Path -Leaf $Path1) + "_" + "$FormattedTime" # Write-Output $NewFilePath } else { # ファイルの場合 Write-Output ■ファイル:$Path1 # 拡張子以外のファイル名を取得 $FileName = [System.IO.Path]::GetFileNameWithoutExtension($Path1) # 拡張子を取得 $Extension = [System.IO.Path]::GetExtension($Path1) # 新しいファイル名を作成 $NewFileName = "$FileName" + "_" + "$FormattedTime" + "$Extension" # ファイルパス $NewFilePath = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($Path1), $NewFileName) #Write-Output NewFilePath:$NewFilePath } # リネーム ファイルがロックされているとここでエラーが起きる Rename-Item -Path $Path1 -NewName $NewFilePath # エラーの場合、エラーフラグオン if ($? -ne "True"){ #Write-Output "Error:「$Error」" $IsError = 1; } else { Write-Output "Renamed $Path1 to $NewFilePath" } } else { # ファイルが存在しない場合 Write-Output "File not found: $Path1" } } exit $IsError
ファイル・フォルダに更新日時を付ける【複数可】.cmd
echo off
rem 概要
rem 指定された複数ファイルに以下の処理を実施
rem ①ファイル名末尾に更新日時[_yyyymmdd_hhmmss]を付与
rem
rem 使い方
rem このcmdファイルにファイル(複数可)をドラッグアンドドロップ
rem
rem 注意
rem 選択ファイル数には限界があります(バッチの引数の最大文字数に依存)
echo 【バッチ】のパラメータ:%*
echo -
rem ■powershellの実行
powershell -NoProfile -ExecutionPolicy RemoteSigned -File "%~dp0\ファイル・フォルダに更新日時を付ける.ps1" %*
rem echo 戻り値:%ERRORLEVEL%
rem エラーがある場合は一時停止
IF %ERRORLEVEL% == 1 (
echo エラーあり
pause
)
rem %~nx0はバッチファイル名
rem echo 【バッチ】%~nx0の処理終了
無限ループシェル。停止機能あり。
意図的に無限ループを発生させて、任意のタイミングで終了させたいときのシェル
ログの出力間隔と、loop.txtを参照しに行く間隔は設定可能。
#!/bin/bash ################################################## # 概要:loop.txtの値が"1"になるまで無限ループ # # 備考:loop.txtが当シェルと同じディレクトリに # 存在しない場合は値"0"で作成します。 # # loop.txt用コマンド # echo 1 > loop.txt # echo 0 > loop.txt # ################################################## # ミリ秒スリープ時間(例:100ms) SLEEP_MS=1000 #ログ出力間隔(ms)。スリープ時間よりも大きくする LOG_INTERVAL_MS=10000 #経過時間 LOG_ELAPSED_TIME=0 # loop.txt のパス(このスクリプトと同じディレクトリ) SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" LOOP_FILE="$SCRIPT_DIR/loop.txt" # [ loop.txtの値が"1"になるまで無限ループ ] while true; do # loop.txt が存在するか確認、なければ作成して "0" を書き込む if [ ! -f "$LOOP_FILE" ]; then echo "0" > "$LOOP_FILE" fi # loop.txt の内容を読み取る VALUE=$(<"$LOOP_FILE") # 内容が "1" ならループを抜ける if [ "$VALUE" = "1" ]; then echo `date +"%Y/%m/%d %H:%M:%S"` "ループ終了条件を検出しました。" break fi # ミリ秒スリープ(sleep は秒単位なので 100ms = 0.1秒) sleep "$(bc <<< "scale=3; $SLEEP_MS/1000")" # 経過時間 = 経過時間 - ミリ秒スリープ時間 ((LOG_ELAPSED_TIME = LOG_ELAPSED_TIME + SLEEP_MS)) # 経過時間 > ログ出力間隔の場合 if [ "$LOG_ELAPSED_TIME" -ge "$LOG_INTERVAL_MS" ]; then # 経過時間 = 経過時間 - ログ出力間隔 ((LOG_ELAPSED_TIME = LOG_ELAPSED_TIME - LOG_INTERVAL_MS)) echo `date +"%Y/%m/%d %H:%M:%S"` 無限ループ中 fi done exit 0
motorola Smart ConnectでChromeリモートデスクトップを試す
motorola Smart ConnectでChromeリモートデスクトップを使ってみた。
これが意外に使えたのでメモ。
■前提
・Type-Cハブで
キーボード、マウス
■感想
・文字入力が「テキストを送信」を経由せずに普通にできる。
キーボード配列も普通に日本語配列での入力になる。
・shift + win + s はsmart connectのスクショ取得になる。
スクショはSnipping Toolのアイコンから起動すればよい。
・ctrl + alt + delはリモート先に送られる。
・完全に全画面にするにはChromeリモートデスクトップの設定の
画面右上のピンボタンを押下
画面右上のキーボードボタンを押下
・普通に使えるのでネット環境とディスプレイ、キーボード、マウスがあれば普通に使えそうな印象
・マウスカーソルが迷子になることがあるがいろいろ動かしてるうちにちゃんと出るようになる。
・「キーボード ショートカットを設定」が有効だとShiftキーで大文字入力がうまく機能しなくなるので無効にしておく。
テキストのみで申し訳ないが上記のような感じ。
この記事も試しにChromeリモートデスクトップを使って書いている。特に問題ない。
ただディスプレイ、キーボード、マウスがあるということはWindowsマシンがあるのが普通であり、そちらを使ったほうが早いし快適と思われる。
そうするとSmart Connectの意味とは?とはなる。
motorolaスマホのSmart Connectでスクショの貼り付けを試す
Smart Connect機能でHDMI出力できるUSBハブを使えば大画面モニタに映してキーボード、マウスも使用できる。
今回はSmart Connect内でスクリーンショットを撮る → 画像をクリップボードから各アプリに貼り付けできるか、に焦点を当てて見てみる。
日本語入力はクリップボードが使用できるGboardを使用。
各アプリで試したところ以下のような結果。
| アプリ | クリップボードからの画像貼り付け | 左記不可時の代替手段 |
| OK | - | |
| Line | OK | - |
| Gmail | OK | - |
| Aqua Mail | OK | - |
| Excel | 「Excel はここでの画像の貼り付けをサポートしていません」と出る。 | 挿入タブの「画像」ボタンでファイルから挿入 |
| M365 CopilotのExcel | 「M365 Copilotはここでの画像の貼り付けをサポートしていません」と出る。 | 挿入タブの「画像」ボタンでファイルから挿入 |
| M365 CopilotのWord | 「M365 Copilotはここでの画像の貼り付けをサポートしていません」と出る。 | 挿入タブの「画像」ボタンでファイルから挿入 |
| EdgeでOutlook | 「Edgeはここでの画像の貼り付けをサポートしていません」と出る。 | インライン挿入 |
| ChromeでOutlook | 「Chromeはここでの画像の貼り付けをサポートしていません」と出る。 | インライン挿入 |
| OperaでOutlook | 「Operaはここでの画像の貼り付けをサポートしていません」と出る。 | インライン挿入 |
| Outlook | 「この操作を完了するためのアクセス許可がありません」と出る。 | 無し |
| Outlook Lite | 「Outlook Liteはここでの画像の貼り付けをサポートしていません」と出る。 | 「インライン挿入」でファイルから画像を挿入 |
Excel、Outlook Liteで使えて欲しかったがどちらもダメ。
上記アプリで使えれば普段使い出来たかもしれないがまだまだ使えるとは言い難い。
代替手段はあるもののWindowsに比べて非常に手間が多い。
スクショ取得→すぐ「貼り付け」ってしたい
やはりまだWindowsの方が使い勝手が良い。