ラベル Windows の投稿を表示しています。 すべての投稿を表示
ラベル Windows の投稿を表示しています。 すべての投稿を表示

2017年11月16日木曜日

Windows10Upgradeフォルダーってなんだ?

気が付いたら、SurfaceProのCドライブの容量が5GBを下回っていた。
びっくりして、調べてみたら、
「C:\Windows10Upgrade」フォルダーなるものがあったので、調べてみた。


Windows10Upgrade

windows10アップグレートアシスタントがインストールされているらしい。

windows10アップグレートアシスタントってなんぞや

Windows10のアップデート時に勝手にインストールされることがあるらしい。
今回は、

Anniversary Update
の関係で、インストールされたっぽい。。。

なんか、Microsoftのコミュニティに記載があった。
# 日本語のURLって好きになれないけど。。。

2017年11月10日金曜日

C#でTextBoxに数値のみの入力制限をする方法



C#でTextBoxに数値のみの入力制限をする方法を紹介します。
基本的な入力制限はもちろんのこと、コピペや再変換にも対応。

対応方法としては、テキスト変換時に数値以外を空文字に変更するだけ。
ただし、文字の削除のみだと、選択位置が変わるため、少し調整しています。


Regex m_NumOnlyRegex = new Regex("[^0-9]");
private void numTextBox_TextChanged( object sender, EventArgs e )
{
    var preTextLen = numTextBox.Text.Length;
    var selectPos = numTextBox.SelectionStart;
    numTextBox.Text = m_NumOnlyRegex.Replace( numTextBox.Text, String.Empty );
    var removeLen = preTextLen - numTextBox.Text.Length;
    if( selectPos > removeLen )
    {
        numTextBox.SelectionStart = selectPos - removeLen;
    }
    else
    {
        numTextBox.SelectionStart = 0;
    }
}

2017年1月29日日曜日

zipファイルを展開するとファイルの更新日付がずれる

zipファイルを展開するとファイルの更新日付がずれることがあるということで、調べてみました。
原因は、zipファイルのフォーマット。

zipファイルのフォーマットでは、タイムスタンプをFATと同じように偶数秒でしか保持しないことが問題のようです。(ただし、拡張データにタイムスタンプを保持するようなツールもあるようです)

wikipediaより


参考にしたページとフォーマットを見ると、


timeは2byte。。。
秒数の保持は、5bitだそうです。

無理です。orz

プロジェクトファイルとかで、ファイルが変更されていないかって、日付で見たりしてるんですけど・・・どうしよう・・・

やっぱり、「保存するときは、tarやrarにしてください。」って注意書きでごまかそうかな。。。

2016年10月11日火曜日

Docker for Windowsのインストール(HyperV)


Docker for Windowsのインストールしてみました。

とりあえず、今回は、HyperVの環境に入れています。
※というわけで、HyperVが動作するように設定しておいてください。

やったこと

1.DockerforWindowsのダウンロード
  とりあえずは、Stable版にしておきます。

2.インストール
  説明はありません。
ライセンスに同意し、インストールします。



インストールが始まります。



インストールが完了します。


3.とりあえず、Hyper-V マネージャーを起動し、動作していることを確認します。

MobyLinuxVMが動いていればOK


お試し

ubuntuを動かしてみる




初めに、コマンドプロンプトで、Linuxのコマンド(ls)が動かないことを確認しています。

次に、

docker pull ubuntu

でubuntuを取得しています。
そのあとは、ubuntuの実行です。

docker run -it ubuntu

そして、lsコマンドでの実行と、Ubuntu 16.04が動作していることを確認しました。
ちなみに、うちのbash on ubuntuは、14.04なので、ちゃんとWindows上に2つのUbuntuが動作しています。<---意味ないけど。。。



2016年8月31日水曜日

WindowsでのScriptで配列を利用(Powershell,VBS)

前回、バッチファイルで配列もどきを書いてみました。
書けることは書けたのですが、ものすごく面倒だったので、
Windows標準で使用できるスクリプトで書き直してみました。


VBSでの配列

Option Explicit
Dim values
Dim index
values = Array("value0", "value1", "value2", "value3", "value4")
For index = LBound(values) To UBound(values)
    WScript.Echo values(index)
Next


PowerShellでの配列

$values = @("value0","value1","value2","value3","value4")
for ($i = 0; $i -lt $values.Length; $i++) {
    Write-Host($values[$i])
}

バッチでの配列

@echo off
set key[0]="value0"
set key[1]="value1"
set key[2]="value2"
set key[3]="value3"
set key[4]="value4"
for /L %%i in (0,1,4) do (
call echo %%key[%%i]%%
)


PowerShellは、あまり詳しく知りませんが、一番簡単に書けるかも。
ちなみに、googleのWebサーバーに、ファイルをアップロードしたところ、
batとvbsは、エラーになりましたが、ps1は大丈夫でした。

2016年8月30日火曜日

バッチで環境変数を配列としてfor文でまわす

バッチで環境変数を配列としてfor文でまわす


バッチファイルで環境変数を配列としては使用できません。
なので、配列っぽくしてみました。

callを使う場合

:----バッチファイルで配列(call 利用)----
@echo off
set key[0]="value0"
set key[1]="value1"
set key[2]="value2"
set key[3]="value3"
set key[4]="value4"
for /L %%i in (0,1,4) do (
call echo %%key[%%i]%%
)

setlocal ENABLEDELAYEDEXPANSION を使う場合

:----バッチファイルで配列(ENABLEDELAYEDEXPANSION)----
@echo off
set key[0]="value0"
set key[1]="value1"
set key[2]="value2"
set key[3]="value3"
set key[4]="value4"
setlocal ENABLEDELAYEDEXPANSION
for /L %%i in (0,1,4) do (
echo !key[%%i]!
)
endlocal

フォルダー内のファイルをバッチで環境変数を配列としてfor文でまわす

----バッチファイルで配列(ファイル一覧)----
@echo off
setlocal ENABLEDELAYEDEXPANSION
set cnt=0for /f %%i in ('dir /b C:\batfiles\*.bat') do (
set /A cnt=cnt+1
set files[!cnt!]="%%i"
)
for /L %%i in (0,1,%cnt%) do (call !files[%%i]!)