
【コマンドプロンプト】名前順のtreeをdir sort sedで実装出来ないでしょうか
windows10環境です。
treeで出力される結果が名前順でないことが不満です。
先日そういったものが必要で、dirで出力されたものをエクセルに持ち込み、親フォルダごとに罫線へ置換して行きましたが、コマンドプロンプトでクローズさせることはできないでしょうか。
1:フォルダ
2:フォルダ/ファイル1
3:フォルダ/ファイル2
4:フォルダ/ファイル3
1を除いて フォルダ/ を├ に置換したいと考えています。
また、フォルダは複数(同レベルも子レベルもあり)に対応したいです。
正規表現でどのように表現したらよいか検討がつかず、アドバイスが頂ければ嬉しいです。
No.4ベストアンサー
- 回答日時:
No.2です。
PowerShellで書いてみました、ご参考にどうぞ。
---- tree.ps1 -- ここから
function print_tree{
Param(
[string]$path,
[string]$indent
)
$items = Get-ChildItem $path
$cnt = $items.Count
$i = 0
$idt = ""
$items | Sort-Object | %{
$i++
if($i -eq $cnt){
$indent + "└─" + $_.Name | Out-Host
$idt = " " # 半角スペース4個
}else{
$indent + "├─" + $_.Name | Out-Host
$idt = "│ " # 縦罫線+半角スペース2個
}
if($_.PSIsContainer){
print_tree $_.FullName ($indent + $idt)
}
}
}
if($args.Count -ne 1){
"Error : 引数の数が正しくありません" | Out-Host
"Usage : \test.ps1 path" | Out-Host
exit
}
if(-not (Test-Path $args[0]) ){
"Error : パスが正しくありません" | Out-Host
exit
}
$path = Get-item $args[0]
$path.FullName | Out-Host
print_tree $path.FullName ""
---------------- ここまで
コマンドプロンプトからの実行例
C:\powershell>powershell -ExecutionPolicy RemoteSigned .\tree.ps1 . ←引数にカレントを指定
C:\powershell
├─root
│ ├─aaa.txt
│ ├─FolderA
│ │ └─FileA1.txt
│ ├─FolderB
│ │ └─FileB1.txt
│ ├─FolderC
│ │ ├─FolderCA
│ │ │ ├─FileCA1.txt
│ │ │ └─FileCA2.txt
│ │ └─FolderCB
│ │ └─FileCB1.txt
│ └─zzz.txt
└─tree.ps1
PowerShellのコンソールからなら
PS C:\powershell> .\tree.ps1 .
本当にありがとうございます!
これをもとに色々学んでみたいと思います。
回答が遅くなってしまいましたが、ベストアンサーとさせて頂きます!
No.3
- 回答日時:
sedはWindowsでは標準では無いはずです。
何か、インストールしているのでしょうか?
Windows Subsystem for Linux でsedをインスールして使っているのなら、同様に(Linuxでの) treeコマンドが使えるかもしれません。
(試していないのでわかりませんが)
「linux tree source」で検索すると、いくつかのLinuxディストリビューションで採用されているtreeコマンドのソースが見つかります。
http://mama.indstate.edu/users/ice/tree/
Windowsでそのまま動かせるかは、試してないのでわかりません。
「sed tree」で検索すると、いくつか見つかります。
大抵、(linuxの) findコマンドを使っているので、使えるようにする必要があります。
Python,Ruby,Perl等でもできます。
(私なら(使い慣れている)Perlを使います。)
sedは別件で使用したかった事があり、特別にインストールしておりました。
こういったパッケージ化されたものもあるのは知りませんでした。
今度機会があれば、こちらも使用してみたいとおもいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/03 09:11
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのVBAでフォルダ指定がで...
-
Windows10でコマンドプロンプト...
-
Excel VBA マクロ フォルダ名を...
-
VBAで行うフォルダ・ファイル検...
-
エクセルのマクロについて教え...
-
inputboxでセルの値を初めから...
-
パス名に2バイト文字(マルチバ...
-
Access VBA で フォルダ権限...
-
【VBS】古い日付のフォルダを削...
-
エクセル マクロで指定フォル...
-
集めたシートのシート名を変更...
-
【Ant】指定した複数のフォルダ...
-
【C# 2010】 テキストへのドラ...
-
会社のネットワーク上のファイ...
-
ExcelのVBAでの複数階層からの...
-
VB6でのドラッグ&ドロップにつ...
-
ファイルサイズを指定してファ...
-
VBA フォルダ名と画像ファイル...
-
(UWSC)ファイルを作るときに、...
-
visual studio 2010
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
会社のネットワーク上のファイ...
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
VBA 最新のフォルダ取得
-
VBA フォルダ名に特定の文字を...
-
Access VBA で フォルダ権限...
-
ディレクトリ名変更してコピー...
-
excelマクロ 冒頭3文字が一致す...
-
Excelで指定したフォルダに保存...
-
パス名に2バイト文字(マルチバ...
-
ExcelのVBAでフォルダ指定がで...
-
excel VBA Dirにて検索したフォ...
-
【マクロ】ファイル名の日付に...
-
VBA フォルダの複数選択ができない
-
Excelのハイパーリンクについて...
-
あるフォルダーのファイルを違...
-
C ファイル出力で、フォルダが...
-
フォルダを開いて、閉じるのプ...
-
ThisWorkbookがあるフォルダ更...
おすすめ情報