sourcecode

(linux touch 명령어와 같이) 윈도우의 명령줄에 빈 파일 만들기

codebag 2023. 5. 18. 21:02
반응형

(linux touch 명령어와 같이) 윈도우의 명령줄에 빈 파일 만들기

윈도우즈 시스템에서 이 오류가 발생함

'touch'는 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.

Linux 전용인 것처럼 보이는 다음 지침을 따르고 있었지만 표준 Windows 명령줄에서는 다음과 같이 작동하지 않습니다.

touch index.html app.js style.css

Linux / macos / unix world의 'touch' 명령에 해당하는 창이 있습니까? 이런 종류의 명령을 실행하려면 이러한 파일을 손으로 생성(및 타임스탬프를 변경하도록 수정)해야 합니까?노드와 함께 작업하고 있습니다. 별로...노드 같은...

cmd와 같은 Windows 명령줄에서 touch 명령을 쉽게 대체할 수 있는 방법은 다음과 같습니다.

type nul > your_file.txt

바면 0이생다니그에 됩니다.your_file.txtjava.

이 방법은 윈도우즈 배치 파일에서도 사용할 수 있는 좋은 솔루션입니다.

다른 방법은 echo 명령을 사용하는 것입니다.

echo.> your_file.txt

echo - 빈 줄이 하나 있는 파일을 만듭니다.


해야 할 에는 파일내하경는을 합니다.>>>

>   Creates a new file
>>  Preserves content of the file

type nul >> your_file.txt

호출 명령을 사용할 수도 있습니다.

상위 배치 프로그램을 중지하지 않고 다른 배치 프로그램에서 한 배치 프로그램을 호출합니다.호출 명령은 레이블을 호출 대상으로 수락합니다.

예:

call >> your_file.txt

또는 WSL(Windows Subsystem for Linux)을 설치하기만 하면 됩니다.그런 다음 입력합니다.

wsl touch

또는

wsl touch textfilenametoedit.txt

따옴표는 필요하지 않습니다.

에는기본적않포다가 포함되어 있지 .touch지휘권

사용 가능한 공용 버전을 사용하거나 사용자 고유 버전을 사용할 수 있습니다.이 코드를 다음으로 저장touch.cmd의 길 . 리고당길그어그배것치다니합을에가딘신의다▁and▁in배니합치.

@echo off
    setlocal enableextensions disabledelayedexpansion

    (for %%a in (%*) do if exist "%%~a" (
        pushd "%%~dpa" && ( copy /b "%%~nxa"+,, & popd )
    ) else (
        type nul > "%%~fa"
    )) >nul 2>&1

인수 목록을 반복하고 각 요소(존재하는 경우)에 대해 파일 타임스탬프를 업데이트합니다. 그렇지 않으면 파일 타임스탬프를 만듭니다.

ECHO >> filename 명령을 사용할 수 있습니다.txt

지정된 확장명을 가진 파일을 현재 폴더에 만듭니다.

업데이트:

빈 파일의 경우: NUL 파일 이름을 복사합니다.txt

윈도우즈 PowerShell에서 다음 명령을 사용할 수 있습니다.

New-Item <filename.extension>

또는

New-Item <filename.extension> -type file

참고: 항목은 별칭 ni로 대체할 수 있습니다.

정답이 틀렸습니다. 파일이 없는 경우에만 작동합니다.파일이 존재하는 경우 첫 번째를 사용하면 아무 작업도 수행되지 않고 두 번째를 사용하면 파일 끝에 줄이 추가됩니다.

정답은 다음과 같습니다.

copy /b filename.ext +,,

여기서 찾았습니다: https://superuser.com/questions/10426/windows-equivalent-of-the-linux-command-touch/764721#764721

저는 여기서 얼마나 많은 답들이 단지 틀리는지 놀랍습니다.파일에 아무 것도 반향하지 않는 것은 파일을 다음과 같은 것으로 채웁니다.ECHO is ON그리고 반향을 일으키려고 노력하는 것.$nul말 그대로 파일에 저장됩니다.$nul의안에일파. PowerShell의 경우 로, PowerShell, 에코$null 것은 파일을 , 로실제로파일을 0kb만들않만겠, 과같인된것딩코이로 인코딩된 것.UCS-2 LE BOM파일에 바이트 순서 표시가 없는지 확인해야 할 경우 파일이 지저분해질 수 있습니다.

여기에 나와 있는 모든 답변을 테스트하고 유사한 답변을 참조한 후 콘솔 셸별로 작동할 것임을 보장할 수 있습니다. 바꿔요 ㅠㅠㅠㅠㅠFileName.FileExtension 또는 "" " " " " 를 지정합니다.touch키스 러셀 덕분에COPY NUL FILE.EXT 업이트:

CMD(타임 스탬프 업데이트 포함)

copy NUL FileName.FileExtension

이렇게 하면 새 파일이 생성됩니다. 이름은 다음과 같습니다.FileName.FileExtension바이트의 크기로.파일이 이미 존재하는 경우 기본적으로 파일 자체를 복사하여 타임스탬프를 업데이트합니다.이는 1:1 기능보다는 해결 방법에 가깝습니다.touch그러나 다른 내용을 변경하지 않고 파일의 타임스탬프를 업데이트할 수 있는 CMD용 내장 도구에 대해서는 잘 모릅니다.

타임스탬프 업데이트가 없는 CMD

if not exist FileName.FileExtension copy NUL FileName.FileExtension

타임스탬프 업데이트가 있는 Powershell

if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}

예, 콘솔에서 하나의 라이너로 작동하므로 PowerShell 스크립트 파일에 배치할 필요가 없습니다.

타임스탬프 업데이트가 없는 PowerShell

if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}

명령줄에서 다음 명령을 사용합니다.

fsutil file createnew filename  requiredSize

매개 변수 정보는 다음과 같습니다.

fsutil - 파일 시스템 유틸리티(실행 중인 실행 파일)

file - 파일 작업을 트리거합니다.

createnew - 수행할 작업(새 파일 만들기)

filename - 말 그대로 파일의 이름입니다.

requiredSize - 생성된 파일에서 파일 크기를 바이트 단위로 할당합니다.

컴퓨터에 npm을 설치합니다.

명령 프롬프트에서 다음 명령을 실행합니다.

npm install touch-cli -g

이제 touch cmd를 사용할 수 있습니다.

다음 명령을 사용하여 터치 기능을 복제할 수 있습니다.

$>>filename

일은 이이하것다음같과은프것다시입라는 하는 것입니다.$하지만 만약에$존재하지 않거나 출력을 생성하는 실행 파일이 아니므로 출력이 생성되지 않습니다.기본적으로 기능에 대한 해킹이지만 다음과 같은 오류 메시지가 표시됩니다.

내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.

오류 메시지를 표시하지 않으려면 다음 두 가지 작업 중 하나를 수행할 수 있습니다.

type nul >> filename

또는:

$>>filename 2>nul

type명령은 null의 내용을 표시하려고 합니다. null은 읽을 때 EOF(파일 끝)만 반환합니다.

2>nul오류 출력(출력 2)을 null로 보냅니다(쓰기 시 모든 입력을 무시함). 두 입니다.2>nul는 에 됩니다.type명령을 입력하는 것이 더 빠르기 때문입니다.하지만 적어도 당신은 선택권과 지식을 가지고 있습니다.

전술한 바와 같이

echo >> index.html

모든 확장자를 가진 모든 파일이 될 수 있습니다.

notepad index.html

그러면 메모장 편집기에서 파일이 열립니다.

없음 - 령없음없 - 음다둘명type도 아니다echoWindows Powershell 터미널에서 Unix/Mac OS X의 'touch' 명령을 에뮬레이트하는 데 필요합니다.다음의 속기를 사용하면 됩니다.

$null > filename

현재 위치에 'filename'이라는 이름의 빈 파일이 생성됩니다.필요한 파일 이름 확장자를 사용합니다(예: '.txt').

출처: https://superuser.com/questions/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell (댓글 보기)

의 우간단버경우의전.touch이것은 주로 현재 디렉터리에 0바이트 파일을 만드는 데 사용될 것이고, 대안은 다음을 만드는 것입니다.touch.bat을 저장하고 에 합니다.%Path%▁the로 하는 것.C:\Windows\System32디렉터리, 다음과 같은 것:

터치 배트

@echo off
powershell New-Item %* -ItemType file

단일 파일 생성

C:\사용자\이름\데스크탑>a.txt를 누릅니다.
디렉터리:C:\사용자\사용자 이름\데스크탑
모드 마지막 쓰기 시간 길이 이름----                 -------------         ------ -----a------ 2020-10-14 오후 10:28 오전 0시 txt.

여러 파일 만들기

C:\사용자\이름\데스크탑>"b.txt,c.txt"를 누릅니다.
디렉터리:C:\사용자\사용자 이름\데스크탑
모드 마지막 쓰기 시간 길이 이름----                 -------------         ------ -----a------ 2020-10-14 오후 10:52 b.txt-a------ 2020-10-14 오후 10:52 c.txt

또한.

  • PowerShell 및 명령 프롬프트 모두에서 작동합니다.
  • 기존 하위 디렉터리와 함께 작동합니다.
  • 파일이 이미 있는 경우 파일을 만들지 않습니다.
새 항목 : 파일 'C:\Users\사용자 이름\데스크탑\a.txt'이(가) 이미 있습니다.
  • 여러 파일의 경우 존재하지 않는 파일만 만듭니다.
    • 공백 없이 쉼표로 구분된 파일 이름 목록을 사용하거나 공백이 필요한 경우 따옴표로 묶습니다.
C:\사용자\이름\데스크탑>d.txt,e.txt,f.txt를 누릅니다.C:\사용자\Name\Desktop > "g.txt, '이름에 공백이 있습니다.txt'"

윈도우즈 명령 창(cmd.exe)에서 copy con [filename]을(를) 사용할 수도 있습니다.

C:\copy con yourfile.txt [enter]
C:\CTRL + Z [enter] //hold CTRL key & press "Z" then press Enter key.
^Z
    1 Files Copied.

라는 이름의 파일이 생성됩니다.yourfile.txt로컬 디렉토리에 있습니다.

사용합니다cmder (명령줄 에뮬레이터)

윈도우즈 시스템 내에서 모든 리눅스 명령을 실행할 수 있습니다.

https://cmder.net/ 에서 다운로드할 수 있습니다.

정말 좋아해

Windows 10의 Visual Code Studio 터미널에서는 다음과 같이 새 파일을 만들었습니다.

type > hello.js
echo > orange.js
ni > peach.js

Raghuveer답변에서 지적했듯이,ni는 PowerShell 칭입다의 입니다.New-Item에서 PowerShell을 사용하여 할 수 .ni촉감 대신에

입하려 경우는을 입력하는 것을 touchni설정할 수 있습니다.touch PowerShell New-Itemsmdlet.

Windows PowerShell에서 터치 명령 만들기:

PowerShell 프롬프트에서 새 별칭을 정의합니다.

Set-Alias -Name touch -Value New-Item

이제 터치 명령은 예상한 것과 거의 동일하게 작동합니다.유일한 차이점은 파일 목록을 쉼표로 구분해야 한다는 것입니다.

touch index.html, app.js, style.css

이렇게 하면 PowerShell의 별칭만 설정됩니다.PowerShell을 사용하지 않는 경우 WSL을 설정하거나 Windows용 bash를 사용할 수 있습니다.

안타깝게도 PowerShell 세션을 종료하는 즉시 별칭이 잊혀집니다.별칭을 영구적으로 만들려면 해당 별칭을 PowerShell 사용자 프로필에 추가해야 합니다.

PowerShell 프롬프트에서 다음을 수행합니다.

notepad $profile

프로필에 별칭 정의를 추가하고 저장합니다.

PC에 Cygwin을 설치한 경우 Windows 명령 프롬프트를 통해 제공된 실행 파일을 터치로 간단하게 사용할 수 있습니다.

C:\cygwin64\bin\touch.exe <file_path>

파일이 존재하고 타임스탬프만 업데이트하면 된다고 가정합니다.

type test.c > test.c.bkp && type test.c.bkp > test.c && del test.c.bkp

사용하다rem. > file.txt("rem" 명령에 부착된 도트 포함)
빈 됩니다.

가능한 최단 바닐라 용액은 다음과 같습니다.

.>myfile.txt

여기에 이미지 설명 입력

오류가 발생하지만 파일이 생성됩니다.

여기에 이미지 설명 입력

PowerShell을 사용하여 다음을 입력합니다.ni index.html또는ni style.css또는ni app.js

ni <filename>.<extension>

VS Code를 사용하는 경우 명령줄 도구가 있습니다. codeVS Code에서 존재하지 않는 파일을 여는 데 도움이 됩니다.

다른 모든 답변에 뭔가가 누락되어 있습니다. 버전touch명령어에 다음과 같습니다.-t마지막으로 수정한 시간을 현재 시간뿐만 아니라 임의의 날짜 및 시간으로 설정할 수 있는 옵션입니다.

수정 됩니다.filename.txt자정 에.2012년 12월 12일 20분에.

touch -t 201212210030 filename.txt

윈도우즈에서 동등한 기능을 사용하려면 PowerShell에 있어야 합니다. 이 기능은 Cmd에서 수행할 수 없습니다.

  • 이름이 지정된 파일의 작성 날짜/시간 스탬프 변경filename.txt:
(Get-Item "D:\Test\filename.txt").CreationTime=("21 December 2012 00:30:00")
  • 이름이 지정된 파일의 마지막 쓰기 날짜/시간 스탬프 변경filename.txt:
(Get-Item "D:\Test\filename.txt").LastWriteTime=("21 December 2012 00:30:00")
  • 이름이 지정된 파일의 마지막 액세스 날짜/시간 스탬프 변경filename.txt:
(Get-Item "D:\Test\filename.txt").LastAccessTime=("21 December 2012 00:30:00")

Ubuntu와 같은 적절한 배포자가 있는 WSL이 있는 경우 bash 터미널뿐만 아니라 CMD에서 touch 명령을 사용할 수 있습니다.Windows 10 및 11 Windows 터미널에서 작동합니다.

간편한 txt 파일 예제

echo $null >> filename.txt

네, 터치용 노드를 사용할 수 있습니다. Windows Cmd 또는 gitbash에서 사용하면 됩니다.

여기에 이미지 설명 입력

사용하다typetouch

type YOUR_FILE_NAME

그러나 파일은 하나로 제한됩니다.

언급URL : https://stackoverflow.com/questions/30011267/create-an-empty-file-on-the-commandline-in-windows-like-the-linux-touch-command

반응형