仕事を辞めたい、怠け者だからな

仕事を辞めたいとグダグダ言いながらも、やめる手順が面倒だということで結局やめない「からな」の面倒嫌いブログです。日々のことなり、色々書いていきます。自由気まま、やりたいことばかりやっちゃう。

仕事を辞めたい、
怠け者だからな

メインブログです。
ぐだぐだしつつも、
やりたいことに全力全身!

  最高の出会いを求めて
自身の最高の出会いまでの道のり、
方法を書いていきます。

  標準体重を目指して
標準体重を目指して奮闘する!
ダイエットグッズ実践含みます。

【cmd】サーバーのフォルダ構成を綺麗に書き出す【バッチ】

仕事で、サーバーのフォルダ構成を綺麗に書き出す必要があった。
普通はないよね、こんなこと。


色んなサイトを参考見て、考えた。
Treeコマンドをバッチファイル化すれば良いんじゃないかと思って
試したらいけた。やったね!

例えば、\\NETDRIVE\テストフォルダという場所のフォルダ構成を出したいとする。
以下の点線内をメモ帳にコピペして
「フォルダ構成書き出し.bat」などにしてどこかに保存すれば使えると思う。

  • -

rem ネットワークドライブに接続する(ローカルのC:\とかだったら不要)
net use \\NETDRIVE\テストフォルダ
rem Treeコマンドで、フォルダの構成を出力する。
tree /F \\NETDRIVE\テストフォルダ > \\NETDRIVE\テストフォルダ\TEST.txt
rem TEST.txtが出来るので、エクスプローラーを開いて確認する
explorer \\NETDRIVE\テストフォルダ

rem もし「ReplaceText.txt」ファイルが既に存在している場合、削除しておく
if exist \\NETDRIVE\テストフォルダ\ReplaceText.txt del \\NETDRIVE\テストフォルダ\ReplaceText.txt

rem 以下の「for」ループ内で変数を変化させるための宣言
setlocal enabledelayedexpansion

rem \\NETDRIVE\テストフォルダ\TEST.txtを1行ずつ「line」変数に入れる
rem 変数「line」内の「│」などを「半角スペース2つ」に置換、
rem また「半角スペース4つ」を「タブ」に置換し、
rem 「ReplaceText.txt」ファイルに書き込む
for /f "delims=" %%a in (\\NETDRIVE\テストフォルダ\TEST.txt) do (
set line=%%a
set line=!line:│= !
set line=!line:└= !
set line=!line:─= !
set line=!line:├= !
set line=!line: = !
echo.!line! >> \\NETDRIVE\テストフォルダ\ReplaceText.txt
)

  • -

\\NETDRIVE\テストフォルダ というのは、単純にサーバー上のフォルダまでのパスを記載してもらえれば。
\\192.168.1.12\テストフォルダ みたいなのでも問題なし。
サーバー上のフォルダ出なければ、最初の1行は不要。
tree /F C:\テストフォルダ > C:\テストフォルダ\TEST.txt
フォルダパスの間に半角スペースが入る(Document and Settingsなど)の場合は
ダブルクォーテーション?で囲ったほうが良いと思う。試してないけど。
tree /F "C:\Document and Settings\User\Desktop" > "C:\Document and Settings\User\Desktop\TEST.txt"


あと、空行のときに「echoはOFFです」みたいなメッセージが出てきて邪魔だった。
echo.!line! のように「.」を入れることで回避できるって見たから、その通りに。




そういえば昨日の言及された件だけど、リンク貼られたらそうなるんだね。
何回も見にいっちゃった。恥ずかしいや。

PCMAX ハッピーメールバナー