본문 바로가기

Mac

[Swift] 022 Launching Xcode (Xcode 실행하기) for beginners Xcode 실행하기 지금까지는 Swift의 REPL을 사용해 코드를 입력하고 결과를 보았습니다. REPL은 즉각 피드백을 제공하면서 짧은 소스 코드에서는 작동이 매우 잘 되었습니다. 그러나 앞으로는 더 긴 코드를 사용하게 될 것입니다. 긴 코드를 저장 및 로드하고 편집을 쉽게 하기 위해서는 Xcode를 사용해야 합니다. Xcode는 애플이 제공하는 iOS, OS X, Apple TV OS 용 Swift 앱을 개발 할 때 사용하는 개발 환경입니다. spotlight를 이용하여 실행하기▲ Xcode 경로 찾아서 실행하기▲ Xcode 시작 창▲ 플레이그라운드 저장 중▲ 새롭게 생성된 플레이 그라운드 창▲ Xcode 의 새롭고 재미있는 기능은 플레이그라운드(playground)입니다. Swift는 프로그래머들이.. 더보기
[Swift] 020 Iterating Collections (컬렉션 반복) for beginners 기본적인 컬렉션 타입인 배열과 딕셔너리를 모두 살펴보았습니다. 이젠 배열과 딕셔너리를 반복하는 방법에 대해 알아보고자 합니다. 컬렉션을 반복하는 것은 배열이나 딕셔너리 내의 값을 각각 검사하고 검사 후 잠정적으로 작업을 수행하는 것입니다. 반복은 우리가 일상생활에서 항상 하는 일을 말합니다. 업무를 완료하기 위해 문서로 작성된 단계별 리스트대로 작업할 때 이 리스트의 내용을 반복하는 것입니다. 데이터를 가지고 반복할 때도 다르지 않습니다. 반복은 매우 기본적인 코딩 작업으로 예제를 가지고 다뤄보도록 하겠습니다. Swift에서는 컬렉션에 대한 반복을 쉽게 만들 수 있게 다양한 구문을 제공합니다.배열 반복(ARRAY ITERATION)C 언어를 사용해 본 분들이라면 for 반복문 개념이 매우 친숙할 것입니다.. 더보기
[Swift] 019 Declare Array and Dictionary (배열, 사전 선언하기) for beginners 지금까지 만든 배열과 딕셔너리는 선언할 때 초기화 되었습니다. 그러나 Swift 언어로 프로그램을 개발할 떼에는 때로 초기화 없이 배열이나 딕셔너리를 생성하는 것도 필요합니다. 선언 당시 애플리케이션 내에서 값이 알려지지 않았거나 빈 배열 또는 빈 딕셔너리를 라이브러리나 프레임 워크 내의 메서드로 채울 필요가 있습니다. 빈 배열(The Empty Array)빈 배열을 선언하는데 두 개의 명명법이 사용됩니다. 위 방식은 배열을 "손으로" 직접 입력해서 선언한 형태이고 Array 키워드와 괄호로 묶은 배열의 타입이 사용됩니다. 그리고 Swift는 사용할 수 있는 "약식" 형태의 두 번째 방법도 제시함니다. 위 예제는 Int 값을 가지고 있는 빈 가변 배열을 선언합니다. 가변 배열이기 때문에 배열을 변.. 더보기
[Swift] 018 Dictionary (사전) for beginners 딕셔너리(The Dictionary) 사전을 생각하면 유명한 사전 편집자인 대니얼 웹스터(Daniel Webster)가 떠오를 것입니다. 도서관 서가에 꽂혀 있는 사전에는 뜻을 자세하게 설명한 단어들이 잘 정리되어 있습니다. 또한, 사전에서 단어의 정의를 찾을 때는 알파벳 순서대로 찾습니다. Swift 언어의 딕셔너리(Dictionary)도 우리가 알고 있는 사전처럼 사용합니다. 딕셔너리는 같은 타입을 가진 여러개의 값을 저장하는 하나의 컨테이너라고 볼 수 있습니다. 각각의 값은 유일한 키(key)와 값(value)에 물려 있으며, 이 키와 값은 딕셔너리 안에서 해당 값을 찾기 위한 식별자의 역할을 합니다. 배열의 값들과 달리 딕셔너리 안에 저장된 값은 어떤 순서가 정해져 있지 않습니다. 그래서, 실제로.. 더보기
[Swift] 017 ARRAYS (배열) for beginners Birds of a feather (유유상종)배열이 다른 타입의 값을 가질 수 있을까? 위 예제를 보니 Swift는 확실히 배열이 다른 타입의 값을 가지는 것을 허용하지 않습니다.따라서 배열의 값은 동일한 타입이어야 합니다.▲그렇다면 배열 선언 자체에서 값 타입에 대해 구체적으로 명시하고 싶으면 어떻게 할까요?배열이 특정 타입의 값을 가지도록 선언하려면 콜론을 추가하고 그 다음에 [] 괄호로 묶은 타입의 이름을 넣습니다.▲Extending the array (배열확장)앞에서 다룬 가변 변수인 refillableCandyJar 배열을 다시 한번 살펴보겠습니다. 여기에 새로운 배열을 추가해 보겠습니다.이번에는 결과창을 보여주지 않아 어떤 변화가 발생했는지 알 수가 없네요.▲예상했던 대로 Candy Canes.. 더보기
[Swift] 016 Working with Collection (컬렉션 사용하기) for beginners 컬렉션은 개별적인 값만 표현할 수 있는 Int, Double, Float, Boolean, String 등의 자료형과 달리, 관련 있는 자료끼리 묶음으로서 일종의 집합적 성격을 갖게 하는 자료구조입니다. Swift는 배열(Array)과 딕셔너리(Dictionary)로 알려진 두 가지 타입을 제공합니다. 배열은 동일한 타입을 가진 값을 순서대로 저장하고, 딕셔너리는 동일한 타입을 가진 값을 순서와 상관없이 저장합니다. 따라서 딕셔너리는 유일한 식별자인 키(key)를 통해 값을 찾고 참조하게 됩니다. 이후 부터는 다양한 방법으로 정보 및 데이터를 그룹으로 분류할 수 있게 해주는 중요한 구조체인 컬렉션에 대부분 초점을 맞출 것입니다. The Candyjar (사탕 항아리)슈퍼마켓 선반 위에 놓인 비어 있는 사.. 더보기
[Swift] 015 Optional (옵셔널) for beginners 앞서 동일한 타입의 새로운 변수에 할당할 수 있도록 문자열 변수 s의 내용을 Int형으로 변환하는데 Int() 메서드를 사용한 것을 기억할 것입니다. Swift가 반환한 타입 지정자 다음에 나오는 물음표에 대해서 앞서 잠깐 살펴보았습니다. 이 물음표는 myConvertedInt 가 Int 그 이상이라는 의미를 내포하고 있습니다. 여기에서 물음표는 옵셔널(optional) Int를 의미합니다. 그럼 정확하게 옵셔널 기능은 무엇일까요? 옵셔널은 변수나 상수가 아무것도 없거나 또는 nil 일 수 있다고 Swift에 알려주는 타입 수식어입니다. 값 nil은 오랫동안 다른 프로그래밍 언어에서도 사용되었습니다. Objective-C에서도 nil로 쓰고 있으며 C 언어와 C++ 언어에서는 NULL로 사용되고 있습니다.. 더보기
TarDisk Pear increases your MacBook’s storage in one-click with an SD card fusion drive Adding extra storage to a MacBook using an SD card is easy, but it works like a thumb drive or external hard drive and not like your permanent, built-in storage. That means you’ll have to manually manage the storage, dragging files to and from the drive. But TarDisk Pear lets you add extra flash storage to your MacBook using an SD card and 1-click setup to merge the storage with your internal dr.. 더보기
[Swift] 009 Strings (문자열) for beginners 지금까지 간략하게나마 수치 타입에 대해 알아보았습니다. 그러나 Swift에서 많이 사용되는 또 다른 타입은 문자열형입니다. Swift의 문자열은 한 개 또는 그 이상의 글자를 큰 따옴표(" ")로 묶어서 표현합니다. 완벽한 문자열 선언문은 다음과 같습니다.▼ 아래 예제도 문자열 선언문입니다.▼ 위의 예제들은 타입의 명확함과 타입 추론을 비교해 보여주는 것입니다. 첫번째 예제는 Swift가 타입을 결정하기 위해 값을 확인하는 것이고, 두 번째 예제는 타입을 명확하게 표현한 것입니다. 이 두 예제 모두 Swift에서는 올바른 표현입니다.Stringing things together (문자열 조합)문자열은 더하기(+) 연산자를 사용해 연결하거나 결합(concatenate)해서 더 큰 문자열을 만들 수 있습니다.. 더보기
[Swift] 008 Data Type - Being Explicit (자료형 - 명시적 선언) - 2 for beginners Swift 가 변수나 상수의 타입을 추론해주는 것은 유용합니다. 개발자가 정수가 무엇인지 혹은 소수가 붙은 숫자가 무엇인지 설명하지 않아도 Swift는 그냥 알고 있습니다. 그러나 가끔 변수가 상수를 특정 타입으로 선언하고 싶을 때가 있습니다. Swift는 선언문의 일부로 타입을 알릴 수 있게 해줍니다. 변수나 상수를 특정 타입으로 선언하는 것은 콜론과 타입 이름 순서대로 넣고 그 다음에 변수나 상수 이름을 넣기만 하면 되니 매우 쉽습니다. myNewNumber를 Double 형으로 선언했고 숫자 3을 할당했습니다. 선언한 결과까지 함께 잘 보여주고 있습니다.▼ 위의 결과에서 만약 Double을 넣지 않으면 어떻게 될까요? Swift는 할당된 내용을 평가하고 값이 Int 형이라고 결정을 내리고 나서 my.. 더보기
[Swift] 005_The power of declaration (변수 선언) for beginners The Power of Declaration 학교 다닐 때 숫자나 문자를 대신하는 플레이스 홀더가 변수라는 것을 배웠을 겁니다. "x = 12" 혹은 "y=55"라고 말하는 것은 실질적으로 선언하는 것입니다. 다시 말하면 변수를 숫자와 같다고 선언을 해주는 행위인 것입니다. Swift도 변수를 선언하는 것이니 크게 다르지 않습니다. 우선 터미널에서 Swift를 실행하겠습니다.▼ Swift의 var(variation: 변수) 키워드를 사용해 변수를 선언해 주었습니다. 첫 번째 행은 Swift로 하여금 변수 x는 12와 같다고 선언한 것이며 Swift는 x = 12라고 선언해 명령을 충실히 따른 것입니다. 그 뿐만 아니라 Swift는 "x는 Int(Integer: 정수형)이며 값은 12와 같다."라고 선언합.. 더보기
IBM, Swift sandbox website 공개. Swift 코드를 웹 브라우저에서 작성하다. https://developer.ibm.com/swift/2015/12/03/introducing-the-ibm-swift-sandbox/ 3일 전 애플에서 iOS, Mac OS X 애플리케이션을 제작할 수 있는 프로그래밍 언어인 Swift 를 오픈소스로 전세계에 공개하였습니다. 이를 통해 개인은 물론 기업들도 자유롭게 standard library functions and objects 에 접근할 수 있게 되었고, 서버에도 Swift 를 설치하여 보다 다양한 저작활동을 하는 것이 가능해졌습니다. 이런 애플의 오픈소스 전환 소식이 전해진 이후, 금일 IBM에서 이에 화답하듯이 Swift 코드를 웹 브라우저 상에서 작성하고 컴파일 할 수 있는 IBM Swift .. 더보기
[Swift] 004_Diving into Swift (Swift 실행하기) for beginners 이제 Swift REPL을 실행하면 명령어 입력을 기다리는 Terminal에 REPL 화면이 보일것입니다.▼ REPL을 실핼할 때마다 프롬프트는 숫자 1과 부등호 > 를 표시합니다.▼ Return을 눌러 제대로 작동하는지 확인해 보겠습니다. 한 행을 입력하면 프롬프트는 다음 행으로 넘어갑니다. ▼ Help and QuitSwift는 REPL 명령어 관련 도움말이 내장되어 있습니다. 프롬프트에 :help 명령어를 입력하면 관련 명령어 리스트를 보여줍니다. 그리고 이 명령어들은 콜론이 항상 붙어 있습니다. 콜론을 사용함으로써 Swift문과 REPL 명령어를 구분합니다. :help 명령어를 입력해 명령어 리스트를 확인하겠습니다. ▼ 이 리스트의 명령어 중 상당수가 디버깅과 관련된 것을 알 수 있습니다. Swi.. 더보기
[MAC TIP] 오토메이터를 이용한 파일, 폴더 이름 일시에 변경하기 - Rename files, folders using automator on OS X at once. 맥에서 한번에 많은 파일 혹은 폴더의 이름을 변경해야 하는 경우가 있을 때 어떻게 하시나요? 그냥 하나씩 변경? 지루하고, 번거롭고, 시간도 많이 소요가 될 수 있습니다. 물론 파일의 개수가 한 두개 정도일 경우에는 그냥 마우스 클릭을 한번하거나 키보드로 엔터키를 쳐서 이름을 변경할 수 있습니다. 그러나 오늘 하루에 찍은 사진이 100장 혹은 1000장이라고 한다면 사정이 달라집니다. 이럴 때 유용하게 쓸수 있는 방법이 있습니다. 바로 맥에 내장되어 있는 오토메이터(automator)를 활용하면 한번에 해결 가능합니다. 게다가 서비스(Service)로 저장을 해두면 언제든지 사용가능하기에 생산성 향상에 큰 도움이 됩니다. 1. automator 실행하기spotlight를 이용하여 'automator'를 .. 더보기
[Swift] 003_Interacting with Swift (Swift와 소통하기) for beginners 우선 양방향 인터프리터인 REPL을 통해 Swift 를 시작해 보려고 한다. REPL은 Read-Eval-Print-Loop의 Acronym(앞글자만 딴것)이며 이름 자체가 REPL이 무슨 일을 하는지 알려주고 있다. REPL은 명령을 읽고, 평가하고, 결과를 출력하고 또한 처음으로 돌아가 같은 작업을 반복한다. 실제로 이런 양방향성이 Swift가 가진 훌륭한 기능 중 하나이며 C 언어나 Objective-C와 같은 컴파일러형 언어가 가지고 있지 않은 기능이다. 이미 REPL을 제공하는 루비(Ruby)나 파이썬(Python)과 같은 스크립트 언어를 사용해본 유저라면 새로운 것이 없을테지만 컴파일러형 언어 쪽에서는 새로운 기능이다. REPL의 가장 큰 장점은 C, C++, Objective-C 언어에서 해.. 더보기
[Swift] 001_Introduction(간략한 swift 소개) for beginners Swift는 애플이 출시한 새로운 프로그래밍 언어로 iOS와 Mac OS용 앱을 개발하기 위한 언어이며 모바일뿐만 아니라 데스크탑 컴퓨터를 통틀어 최고의 컴퓨터 언어가 될 것으로 생각한다. Swift 는 배우기 어려운 프로그래밍 언어인 Objective-C와 비교하면 배우기 쉽고 사용하기 편한 언어라는 장점이 있다. 애플은 오랫동안 자사 플랫폼의 프로그래밍 언어로 Objective-C를 주로 사용해 왔지만 Swift를 선보이고 나서 Swift가 주력 프로그래밍 언어가 되어 가고 있는 중이다. 이처럼 배우기 쉬울 뿐만 아니라 매우 강력한 도구인 Swift를 조금씩 올려보려고 한다. 여느 프로그래밍 언어와 마찬가지로 Swift도 샘플로 소개되는 예제를 직접 작성해 보는것이 무엇보다 실력향상에 있어서 중요하다.. 더보기
[MAC TIP] 앱 다중(여러개 띄워 사용) 실행하기 Mac OS X 에서 사파리나 크롬 및 대부분의 문서 편집 프로그램들은 사용자가 원하는 수 만큼의 작업 창을 띄워놓고 사용할 수 있다. 그러나 '단일 창'으로 작동하는 것을 염두해 두지 않은 프로그램들은 별도로 다중 프로그램 실행을 지원하지 않는 경우가 종종 있지만, 불가능한 것은 아니다. 물론, 태생적으로 지원이 안되는 프로그램들은 어쩔 수 없지만, 의외로 많은 OS X 프로그램들이 다중 실행이 가능하다. 터미널 명령어를 이용해서 프로그램 제작자들이 걸어둔 제한을 우회 혹은 회피할 수 있다. Applications(응용 프로그램) > Utilities(유틸리티) 폴더에서 너미널을 실행한 후 아래와 같은 명령어를 입력해 주면 된다. open -n 'Application Path/Application Na.. 더보기
[MAC TIP] Homebrew를 이용해 어플리케이션, 유틸 설치하기 - Homebrew for OS X easily installs Desktop Apps and Terminal Utilities Homebrew를 이용해 어플리케이션, 유틸 설치하기 - Homebrew for OS X easily installs Desktop Apps and Terminal Utilities Homebrew는 Mac OS X 에서 가장 인기 있는 패키지 매니저입니다. 그 중 Homebrew Cask 는 Homebrew 가 구글 크롬(Google Chrome), VLC 등등. 수 많은 맥용 어플리케이션을 빠르게 설치하는데 도움을 줍니다. 끌어다놓거나(Dragging) 하거나 앱떨구기(Dropping)등을 할 필요가 없습니다. 이 방법은 맥 터미널 유틸리티나 GUI 기반의 앱을 설치하는 가장 쉬운 방법입니다. 이것은 윈도우즈 상에서 동작하는 Chocolatey 나 OneGet 과 유사하며, 리눅스에서 구동되는 패키지.. 더보기
엘케피탄 10.11.2 4번째 퍼블릭 베타 릴리즈 - OS X EL Capitan Public Beta 4th Release 오늘 애플의 데스크탑 운영체제 OS X 10.11.2 4번째 버전의 퍼블릭 베타가 릴리즈 되었습니다. 이번 버전에도 별다른 기능 추가 보다는 기존의 오류 수정이나 보안성 향상에 주안점을 두고 있습니다. 기존에 퍼블릭 베타를 사용하신분들은 앱스토어에서 업데이트를 확인하시면 되고, 새롭게 관심있으신 분들은 베타프로그램 신청을 하신후 미리 경험을 해 보실수 있습니다. 더보기
[MAC TIP] 맥 엘 케피탄에서 레이드(RAID) 구성하기 with Terminal - How to set up RAID on MAC OS X El Capitan using terminal 맥의 최신 운영체제인 OS X 10.11 엘케피탄에 있는 disk utility 에서는 더이상 RAID를 구성할 수 없게 되었다. 이는 이전 버전인 요세미티까지는 있는 기능이어서 더욱 아쉬움을 자아내고 있다. 그러나, 레이드를 구성할 수 있는 방법이 전혀 없는 것은 아니다. 물론 이전의 GUI(Graphic User Interface) 형태는 아니지만 맥에 있는 터미널(Terminal)을 통해 가능하다. 또 다른 방법으로는 요세미티의 Disk Utility(디스크 유틸리티)를 엘 케피탄에서 복원하여 사용할 수 있다. 그러나 여기서는 굳이 2번째 방법인 요세미티 디스크 유틸리티를 복원하지 않고, 터미널을 이용해서 레이드를 구성해 보고자 한다. 1. 시작하기 전에... 만약 레이드를 구성할 디스크에 데이터가.. 더보기
엘케피탄 퍼블릭 베타 3번째 버전 릴리즈 - OS X El Capitan Public Beta 3 10.11.2 Release OS X Elcapitan 개발자3번째 베타 버전이 나온지 하루가 지나지 않아 퍼블릭 베타 버전도 나왔습니다. 이번에도 별다른 기능 추가보다는 기존 성능 개선에 주안점을 두고 있습니다. 개인적으론 엘 케피탄 만족하며 사용하고 있지만, 알려진 오류를 많이 겪으신 분들도 있는게 사실인데요. 빨리 후다닥 다 고쳐지길 바라봅니다. 더보기
[BASH] 기본 BASH 업그레이드 및 활용하기 맥에 기본으로 깔려 있는 bash 를 업그레이드 해 보려고 한다. 우선 현재 깔려 있는 bash 버전을 확인해 보았다. 3.2.57 버전이 기본으로 맥에 깔려 있다.그럼 bash 를 왜 업그레이드 해야 할까?대부분의 이용자에게 별 문제없는 기능중 하나일 것이다. 그렇지만 터미널을 많이 사용하는 이들에겐 최신 bash 기능이 없을때 아쉬울 수가 있다. 그 중 bracket expansion 기능을 알아보자. {} 문자를 이용해서 범위를 지정할 수 있는 기능이다. {시작..끝} 이렇게 범위를 지정해서 사용하면 알아서 채워준다. 이와 같은식으로 사용할 수 있다. 어디에 활용할 수 있을까? 파일 이름에 숫자가 이어지는 파일을 한 50개 만들고 싶다고 한다면 아래와 같이 하면 된다. 맥에 기본으로 깔려 있는 ba.. 더보기
[MAC TIP] Mac에 Homebrew 설치하기 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" OSX 용 패키기 관리자인 Homebrew를 맥에 설치하는 것을 알아보고자 합니다. 위의 코드를 터미널에 붙여넣기 하면 됩니다. 설치 과정중 만약 애플의 개발도구인 Xcode 가 설치되어 있지 않으면 아래와 같은 경고창이 뜨게 됩니다. 그러면 그냥 인스톨 하면 됩니다. 잘 다운되고 있네요. 다운이 끝나면 설치가 이루어 집니다. 잘 설치 되었다고 나오네요. 다시 터미널로 돌아온 후 엔터(RETURN)키를 쳐줍니다. 관리자 패스워드를 물어보는데, 이는 사용자 계정의 패스워드를 넣어주면 Homebrew 설치가 계속 진행됩니다. 네.. 설치가 잘 되었다.. 더보기
[Mac App] FTP/SFTP를 품은 ForkLift 사용하기 맥에서 다소 아쉬운 부분이 있다면 파인더 일것이다. 물론 다양한 기능을 잘 활용한다면 더할 나위 없이 훌륭한 기본 프로그램이지만, 이런 기능만 있으면 참~ 좋겠는데... 라는 생각이 들 때가 있다는 말이다. 이런점을 보완해 주는 애플리케이션 중이 하나가 BinaryNights에서 나온 ForkLift 이다. 파인더의 대체 프로그램으로 많이 알려진 Pathfinder, Total commander, Transmit 등과 견주어도 뒤쳐지지 않는 앱이라고 생각한다. 사용자 인터페이스나 디자인, 기능성 모두 만족감을 줄 수 있는 프로그램이라 본다. ForkLift 는 파인더와 유사한 인터페이스를 가지고 있어서, 처음 이 프로그램을 접하는 사람들도 쉽게 사용할 수 있을 것이다. 파인더와 마찬가지로 즐겨찾기 폴더,.. 더보기
[Mac Tip] OSX 데스크탑 (스페이스) 빠르게 이동하기 맥을 사용하면 여러개의 창을 동시에 띄우거나, 서로 다른 작업을 위해 스페이스(화면간 이동)를 적극적으로 활용하여 생산성을 높일 수 있습니다. 이번 시간에는 OSX 내장 기능인 화면간 이동을 단축키로 빠르게 전환하는 것을 알아보고자 합니다. 우선 SystemPreferences 를 띄워주면 위의 화면처럼 보여질 것입니다. 여기에서 키보드로 들어가면 됩니다. 그러면 위의 그림처럼 나오는데, 그 중 단축키(Shortcuts)를 누른 후 좌측의 미션 컨트롤(Mission Control)을 누르면 됩니다. 여기에서 Mission Control 아래에 Move left a space, Move right a space 창이 나올것입니다. 디폴트값은 command + ← 와 command + → 입니다. 저는 개인.. 더보기
How to remove DRM from music and movies | Digital Trends Oh, DRM, how we love to hate you.The technology — short for Digital Rights Management — has been giving consumers trouble since its inception, when it was intended as a means to protect digital media from piracy. DRM has taken many forms over the years, from CD keys and digital watermarks to proprietary file types, but the end result is the same: You can’t copy the stuff you buy or play it on an.. 더보기
El Capitan 10.11.1 Beta and Public Beta Release on 151015. 엘 케피탄 10.11.1 네번째 릴리즈 맥 전문 매체 맥루머에 따른면, 애플은 금일 엘 케피탄의 4번째 베타 for delelopers, Public Beta for enrolled testers 를 릴리즈 했다고 밝혔다. Apple Seeds Fourth OS X El Capitan 10.11.1 Beta to Developers and Public Beta TestersApple today seeded the fourth beta of the OS X El Capitan 10.11.1 update to developers and public beta testers for testing purposes, just one week after releasing the third OS X 10.11.1 beta and two weeks after.. 더보기
[Bash] Photos, Files auto sorting script on Windows,Linux,Mac by dates setlocal enabledelayedexpansion set /p input=Enter the target directory:%=% set RawData=!input!\*.* set target_folder=x:\ for %%a in ("%RawData%") do ( echo Processing %%~nxa ... set File=%%~fa for /f "tokens=1* delims=," %%a in ('wmic datafile where "name='!File:\$ echo %%~nxa: !LastModified! set cYear=!LastModified:~0,4! set cMonth=!LastModified:~4,2! set cDay=!LastModified:~6,2! set TimeStamp.. 더보기