Tag Archive ย้าย

Byphunsanit

WSL: move to another drive

โดยปกติ wsl จะถูกติดตั้งใน %USERPROFILE%\AppData\Local\Packages\ ถ้าจะย้ายไปไดรฟ์อื่นหรือย้ายไปที่อื่น เพราะ drive c เต็มหรืออยากจะ restore windows ทำได้โดย

  1. สร้างไฟล์ WSL2_move.ps1 โดยมีเนื้อหา
    <#
    PowerShell move Windows Subsystem for Linux 2 (WSL2)
    #by pitt phunsanit
    https://pitt.plusmagi.com
    phunsanit@gmail.com
    #>
    
    $distribution = "Ubuntu"
    $folderPath = "C:\UsersDatas\WSL\2\"
    
    $exportPath = [string]::Concat($folderPath, $distribution, ".tar")
    $importPath = [string]::Concat($folderPath, $distribution)
    
    #make folder
    #Check if Folder exists
    If(!(Test-Path -Path $folderPath))
    {
        #PowerShell create directory
        New-Item -ItemType Directory -Path $importPath
        Write-Host 'New folder "'$importPath'" created successfully!' -f Green
    }
    Else
    {
      Write-Host 'Folder "'$importPath'" already exists!' -f Yellow
    }
    
    #stop distribution
    wsl -t $distribution
    
    #export distribution
    wsl --export $distribution $exportPath
    
    #Unregister distribution
    wsl --unregister $distribution
    
    #import distribution
    wsl --import $distribution $importPath $exportPath
    
    #wsl --update
    
    Write-Host 'move WSL"'$distribution'" to "'$importPath'" successfully!' -f Blue
    
    #show distribution
    wsl --install -d $distribution

  2. เรียกใช้โดยเปิด PowerShell โดยสิทธิ์ administrator
  3. cd ไป folder ที่ save ไฟล์ WSL2_move.ps1 เช่น cd C:\UsersGit\phunsanit\snippets\WSL
  4. run โดยใช้ .\WSL2_move.ps1 แล้ว enter แค่นี้ก็ย้าย WSL ได้แล้ว
Byphunsanit

1 ภาพ 1,000 ข้อมูล

ต้องการจะเก็บภาพโดยเก็บตามวันที่ ที่โดนถ่าย เหมือนใน Camera Roll เพราะว่าภาพ TIFF, JPEG, WAV จะมีข้อมูล meta data ที่เรียกว่า Exchangeable image file format (Exif) ที่จะใส่ข้อมูลที่ถูกบันทึกไว้ตอนที่ถ่ายไว้โดยใช้กล้องดิจิติล มีข้อมูลสำคัญๆ อย่าง ถ่ายกับกล้องอะไร Manufacturer, Model เวลาที่ภาพถูกถ่าย Date and Time (original) มีการแต่งภาพรึเปล่า เมื่อไหร่ Date and Time (digitized) และถ่ายที่ไหน

ใน php เราสามารถใช้ function exif_read_data ดึงข้อมูลออกมาให้ใช้จัดการกับรูปได้ จะย้ายภาพไปเก็บไว้ตามวันที่ที่ถ่าย หรือตามสถานที่

<?php

/* fix maximum execution time */
set_time_limit(0);

/* find file */
$root = 'Photos';
echo'<dl>';
foreach (glob($root."/*.{jpeg,JPEG,jpg,JPG}", GLOB_BRACE) as $filename) {

	if($exif = exif_read_data($filename, 'IFD0'))
	{

		$date = date('Y-m-d', strtotime($exif['DateTimeOriginal']));

	    /* create folder */
	    $dir = $root.'/'.$date;
	    if (!is_dir($dir)) {
	        mkdir($dir, 0644, true);
	    }

	    /* move file */
	    $path = explode('/', $filename);
	    $newFile = $dir.'/'.$path[1];
	    rename($filename, $newFile);

	    echo '<dt>',$filename,'</dt>',
	    '<dd>',$newFile,'</dd>';

	}

}
echo'</dl>',
'<h1>Compleate!</h1>';