7cc@はてなブログ

JavaScriptとかとか

PowerShellでファイル属性操作

  • 「読み取り専用」や「隠しファイル」の設定
  • Set-ItemProperty は使わないほうが楽
  • 属性の実体は数値。ビット演算で求める
    • 文字でキャストする方法もある
  • attrib.exe を使ったほうが簡単

属性の取得

$item = gi .\file.txt
$item.Attributes      # Archive
[int]$item.Attributes #32

属性の設定

入力補完が効くけど長い

$item.Attributes = [System.IO.FileAttributes]::Hidden -bor [System.IO.FileAttributes]::Archive

短いけど入力補完が無い

$item.Attributes = "Hidden, System, Archive"
$item.Attributes = @("Hidden", "System", "Archive")

属性の追加と削除

bor/bxor = binary + or/xor でビット演算

Hiddenを追加

$item.Attributes = $item.Attributes, "Hidden"
$item.Attributes = $item.Attributes -bor "Hidden"
$item.Attributes = $item.Attributes -bor [System.IO.FileAttributes]::Hidden

Hiddenを削除

$item.Attributes = $item.Attributes -bxor "Hidden"

Chocolatey と PackageManagement(OneGet)

Chocolateyを使う方法は2つあります。

  1. Chocolateyから choco install 7zip
  2. PackageManagementから install-package -name 7zip -ProviderName ChocolateyGet

2番目の方法がややこしく、Chocolateyではなく ChocolateyGet を使います。

GitHub - jianyunt/ChocolateyGet: ChocolateyGet provider allows to download packages from Chocolatey.org repository via OneGet

続きを読む

Windows10 環境変数PATHの設定が「テキストの編集」モードになってしまう問題

Windows10ではPATHの設定がリスト形式になっていて視認性が上がっています。

f:id:u_7cc:20200204050551p:plain

しかしこれが従来の「テキストの編集」モードになってしまうことがあります。

原因

%USERPROFILE% 以外の変数が連続して使われるとリスト形式での編集ができなくなるようです。

リスト形式になるか パス
%USERPROFILE%;%USERPROFILE%;
%USERPROFILE%;%LOCALAPPDATA%;
%LOCALAPPDATA%;%USERPROFILE%;
%LOCALAPPDATA%;%LOCALAPPDATA%;
%LOCALAPPDATA%;%USERPROFILE%\;%LOCALAPPDATA%; 変数が連続しなければ可
%LOCALAPPDATA%;C:\;%LOCALAPPDATA%;
%LOCALAPPDATA%;%HOMEDRIVE%;%LOCALAPPDATA%;
%homedrive%%homepath%;%homedrive%%homepath%;

%USERPROFILE% のみを使うようにするのが無難なようです。

VSCodeの文字コード自動判定を改善する

動機: "files.autoGuessEncoding"を有効化するとwindows-1252など望まないエンコードになるのを改善したい。

2019.11月現在、文字エンコードを指定するAPIは提供されていません。そのため強引な方法になります。

方法は2つあります。どちらもすることは同じです。

  1. ソースファイルを直接書き換える
  2. chromiumのリモートデバッガーを使って読み込まれているスクリプトを書き換える

この記事では1番目の方法についてのみ説明します。2番目は気が向いたらいつか書きたいです。

続きを読む

バッチファイル(cmd.exe)でオリジナルのコマンドを使う

batファイルでよく使われる @ECHO off のように、コマンド名の前にはアットマークを置くことができます。これはパスの通ったファイルに対しても有効です。例えば、 @calc で電卓が開きます。アットマークはいくらでも置けます。 @@@@@@@@calc でも電卓が開きます

普通の用途と異なりますが、これはエイリアスを設定した時に元のコマンドを呼び出すのに使えます。

続きを読む