プログラミングのメモ

プログラミングの学び直し備忘録

WinCMD:TOP

基礎知識

ワイルドカード

『?』任意の1文字
『*』任意文字列

リダイレクト

標準出力 → ファイル

 ipconfig > ip.txt

標準出力 → ファイル追記

 ping 192.168.0.2 >> ping.txt
 ping 192.168.0.3 >> ping.txt

標準入力をファイルから入力

 sort < test.txt

 sort < src.txt > dest.txt

標準エラー出力をファイルに保存

 dir non_file 2 > err.txt
 dir non_file 2 >> err.txt  'Append

標準エラー出力と標準出力をマージ

 コマンド > ファイル名 2 > &1    REM 標準エラー出力を標準出力にマージ
 コマンド > ファイル名 1> &2    REM 標準出力を標準エラー出力にマージ

パイプ

 tree | more
 type SAMPLE.txt | more

複数のコマンド実行

 cmd1 & cmd2     rem cm1終了後無条件でcmd2
 cmd1 && cmd2  rem cm1が正常に終了したらcmd2
 cmd1 || cmd2      rem cm1が異常でしたらcmd2

 rem ファイルが存在しなくても、単に表示しないだけで、コマンドは実行する
 type test1.txt & type test2.txt & type test3.txt & type test4.txt 

 rem 最初のファイルが存在しないと次は実行されない
 type test1.txt && type test2.txt 

 rem 最初のファイルが存在しないとき次が実行される
 type test1.txt || type test2.txt 

 rem Other
 (type test1.txt && type test2.txt) & type test3.txt & type test4.txt 

コンソール

KEY FUNCTION
[↑] 1つ前のコマンド呼び出し
[↓] 1つ後のコマンド呼び出し
[F7] コマンド履歴一覧表示・カーソルで選択・実行
[Alt]+[F7] コマンド履歴クリア
[文字]+[F8] コマンド履歴から入力した文字で始まるコマンドを検索
[F9] コマンド履歴の番号を指定して実行

参考

管理者権限でコマンドプロンプトを起動するショートカット - Qiita
コマンドプロンプトを『管理者権限』で実行する 8つの方法 | SQLの窓
コマンド基礎 - Windowsコマンド虎の巻
【Windows】管理者権限への昇格(RunasでVBS) - 株式会社クイックのWebサービス開発blog
[VBScript] ユーザログイン状態のまま管理者実行する方法 : ( どーもボキです。 > Z_ ̄∂
[VBScript] 管理者権限でインストーラーを起動[Windows] - Qiita
RUNAS を実行時にきかれるパスワードを自動で入力するスクリプト
runas コマンドでUACをスキップする方法
【Active Directory】ユーザーにローカル管理者権限を持たせる - SEブログ
現在のユーザーが管理者か調べる - .NET Tips (VB.NET,C#...)
[C#]アプリケーションのUAC対応 | MoonWing
動作実績: savecredを使えない環境でパスワード入力を自動化したrunasをpowershellで実現
【Start-Process】PowerShellから管理者として実行させるテクニック | チェシャわら
【Bat】別ユーザーの管理者として実行する方法
RUNASコマンドでパスワードを自動入力するVBScript(WSH)
「runas」コマンドで他のユーザー権限でプログラムを実行する【Windows 10/11】
ADMIN権限処理を実行する

VSCode:MEMO 01

ショートカット

コマンドパレット:[Ctrl] + [Shift] + [P]
設定      :[Ctrl] + [,] 

拡張機能

インストール済拡張機能:アクティビティバーの「拡張機能」アイコン(四角4つ)
インストール:サイドバー上部の検索ボックスに拡張機能の名前の一部を入力
       「インストール(Install)」選択

・日本語化:「Janapease Language Pack for Visual Studio Code」

アンインストール:拡張機能の詳細ページ(拡張機能を選択)-[アンインストール]
無効化:拡張機能の詳細ページ(拡張機能を選択)-[無効にする]

リロード:
 [管理]-[コマンドパレット]([Ctrl] + [Shift] +[P]) - 「reload window」入力・実行

コーディング支援

1 Code Spell Checker スペルチェック
2 Path Autocomplete パス補間
3 Auto Rename Tag ペアタグの同時編集
4 indent-rainbow インデント付け
5 zenkaku 全角スペース色付け
6 Color Highlight カラーコード色付け
7 Code Runner コードを選択箇所のみ実行
8 javascript console utils 「Console.log」短縮入力
9 Prettier コードの自動成型

Code Runner

デフォルトの設定では、実行結果は、パネル「出力」に表示 => 文字化けすることがあるので、「ターミナル」に変更
[Ctrl] + [,] (設定) - 検索ボックス[Code-runner]検索 
「Code-runner: Run In Terminal」項目を探して、「Code-runner:Run In Terminal」設定項目にチェック

【実行】
実行するコードを選択 - 右クリック - [Run Code]

javascript console utils

VSCode:TOP

クリーンインストール

VS Codeをアンインストールするには
Visual Studio Codeを完全にアンインストールする(Windows) | 電脳産物

UI

  • アクティビティバー

  • サイドバー:[Ctrl + B]

  • エディターグループ

  • エディター

  • パネル:[Ctrl + J]

  • ステータスバー

ショートカット

ショートカット - プログラミングのメモ
Visual Studio Code のキーボードショートカット (「Visual Studio Code Keyboard shortcuts for Windows」日本語訳)

キーバインド (原文) 分類
サイドバー [Ctrl + B] Toggle Sidebar visibility ナビゲーション (Navigation)
タブを閉じる [Ctrl + W]
行のカット (未選択時) [Ctrl + X] Cut line (empty selection) 基本設定 (Basic editing)
行のコピー (未選択時) [Ctrl + C] Copy line (empty selection) 基本設定 (Basic editing)
行の移動 (上下) [Alt+ ↑ / ↓] Move line up/down 基本設定 (Basic editing)

HTML PREVIEW

HTML PREVIEW - プログラミングのメモ

Emmet

VSCode:Emmet - プログラミングのメモ

Markdown

VScode×Markdownで【仕事効率化】を図る! | ルイログ

拡張機能

Python

配色カスタマイズ:indent-rainbow

MEMO

VSCode:MEMO 01 - プログラミングのメモ

conda : 用語 'conda' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はその パスが正しいことを確認してから、再試行してください。

C#:TreeView

参考

【C#】TreeView と ListView でエクスプローラーのような画面を作成してみた | ドラブロ – let bygones be bygones –

【C#】TreeView と ListView でエクスプローラーみたいな操作をする | ドラブロ – let bygones be bygones –

[C#] エクスプローラ風のツリービュー表示 | OsadaSoft

TreeViewコントロールで効率的にツリーを構築するには?

TreeViewクラス | C# プログラミング解説

コンテキストメニュー

コントロールに「ContextMenuStrip」ドロップ
「TreeView」のプロパティに「ContextMenuStrip」設定

選択ノードのFullPath

treeView1.SelectedNode.FullPath

フォーカスを失っても選択状態表示

treeView1.HideSelection=False;

初期設定

        /// <summary>
        /// 
        /// </summary>
        private void MyTreeView_Init()
        {

            // ROOT
            string sDir = @"D:";
            TreeNode node = treeView1.Nodes.Add(sDir);

            DirectoryInfo dirList = new DirectoryInfo(sDir);

            foreach (DirectoryInfo di in dirList.GetDirectories())
            {
                node.Nodes.Add(new TreeNode()); // プラスボタンを表示するため空のノードを追加しておく
                node.Nodes.Add(di.Name);        // 下層ノード追加
            }

            // 初期選択ノードの内容を表示
            treeView1.SelectedNode = treeView1.TopNode;
            setListItem(treeView1.SelectedNode.FullPath);
        }
        //*********************************************************
        /// <summary>
        /// リストビューの項目を設定
        /// </summary>
        //*********************************************************
        private void setListItem(String filePath)
        {
            // リストビューのヘッダーを設定
            listView1.View = View.Details;
            listView1.Clear();
            listView1.Columns.Add("名前");
            listView1.Columns.Add("更新日時");
            listView1.Columns.Add("サイズ");

            try
            {
                // フォルダ一覧
                DirectoryInfo dirList = new DirectoryInfo(filePath);
                foreach (DirectoryInfo di in dirList.GetDirectories())
                {
                    ListViewItem item = new ListViewItem(di.Name);
                    item.SubItems.Add(String.Format("{0:yyyy/MM/dd HH:mm:ss}", di.LastAccessTime));
                    item.SubItems.Add("");
                    listView1.Items.Add(item);
                }

                // ファイル一覧
                List<String> files = Directory.GetFiles(filePath).ToList<String>();
                foreach (String file in files)
                {
                    FileInfo info = new FileInfo(file);
                    ListViewItem item = new ListViewItem(info.Name);
                    item.SubItems.Add(String.Format("{0:yyyy/MM/dd HH:mm:ss}", info.LastAccessTime));
                    item.SubItems.Add(getFileSize(info.Length));
                    listView1.Items.Add(item);
                }
            }
            catch (IOException ie)
            {
                MessageBox.Show(ie.Message, "選択エラー");
            }

            // 列幅を自動調整
            listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }
        //************************************************************
        /// <summary>
        /// ファイルサイズを単位付きに変換して返します.
        /// </summary>
        /// <param name="fileSize"></param>
        /// <returns></returns>
        //************************************************************
        private String getFileSize(long fileSize)
        {
            String ret = fileSize + " バイト";
            if (fileSize > (1024f * 1024f * 1024f))
            {
                ret = Math.Round((fileSize / 1024f / 1024f / 1024f), 2).ToString() + " GB";
            }
            else if (fileSize > (1024f * 1024f))
            {
                ret = Math.Round((fileSize / 1024f / 1024f), 2).ToString() + " MB";
            }
            else if (fileSize > 1024f)
            {
                ret = Math.Round((fileSize / 1024f)).ToString() + " KB";
            }

            return ret;
        }

展開処理

        //***************************************************
        /// <summary>
        /// [TreeView]展開前
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //***************************************************
        private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            TreeNode node = e.Node;
            String path = node.FullPath;
            node.Nodes.Clear();

            try
            {
                DirectoryInfo dirList = new DirectoryInfo(path);
                foreach (DirectoryInfo di in dirList.GetDirectories())
                {
                    TreeNode child = new TreeNode(di.Name);
                    child.Nodes.Add(new TreeNode());
                    node.Nodes.Add(child);
                }
            }
            catch (IOException ie)
            {
                MessageBox.Show(ie.Message, "選択エラー");
            }
        }
        //***************************************************
        /// <summary>
        /// [TreeView] 展開
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //***************************************************
        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            setListItem(e.Node.FullPath);
        }

コンテキストメニュー

        //**********************************************
        /// <summary>
        /// [TreeView]コンテキストメニュー
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //**********************************************
        private void ctmsTrv_tsmiOpen_Click(object sender, EventArgs e)
        {
            myFileFolder.clsFileFolder.MySet_OpenFolder(treeView1.SelectedNode.FullPath);
        }

C#:クラス

参考

構文:メソッドやプロパティをラムダ式で簡潔に実装するには?[C# 6.0/7.0]

C# プロパティ(getter/setter)のサンプル | ITSakura

プロパティ

        /// 自フォルダPATH
        public static string pMyAppDirPath => myFileFolder.clsFileFolder.MyGet_AppDirPath();

        /// 自ファイルPATH
        public static string pMyAppFilePath {get;}= myFileFolder.clsFileFolder.MyGet_AppFilePath();

その他

その他

YUKIBEのBLOG

ASCIIコード

■ASCIIコード表■
ASCIIコード表
ASCIIコード"

変数名