[cmd] ‘touch’와 같은 Windows (즉 index.html을 만드는 node.js 방법)

Windows 컴퓨터 에서이 오류가 발생합니다

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

지시 에 따라 할 때 :

touch index.html app.js style.css

‘touch’를 사용하는 것과 동등한 창이 있습니까? 이러한 종류의 명령을 구현하려면 이러한 파일을 직접 작성하고 타임 스탬프를 변경하도록 수정해야합니까? 그것은 … 노드처럼 보이지 않습니다 …



답변

cmd 창에서 다음을 입력하십시오.

type nul > your_file.txt

your_file.txt 파일에 0 바이트가 생성됩니다.

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

echo.> your_file.txt

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

2019-04-01에 편집 :

파일 내용을 보존해야하는 경우> 대신>를 사용하십시오.

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

type nul >> your_file.txt

2020-04-07에 편집 됨

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

부모 배치 프로그램을 중지하지 않고 다른 배치 프로그램을 호출합니다. call 명령은 레이블을 호출 대상으로 승인합니다.

예:

call >> your_file.txt


답변

Windows에는 기본적으로 touch명령이 포함되어 있지 않습니다 .

사용 가능한 공개 버전 중 하나를 사용하거나 고유 한 버전을 사용할 수 있습니다. 이 코드를 다른 이름으로 저장 touch.cmd하고 경로 어딘가에 배치하십시오

@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

현재 폴더에 주어진 확장자를 가진 파일을 만듭니다.

최신 정보:

빈 파일 사용 : copy NUL filename.txt


답변

대답이 잘못되었습니다. 파일이 존재하지 않을 때만 작동합니다. 파일이 존재하는 경우, 첫 번째 방법은 아무 것도 사용하지 않고 두 번째 파일은 파일 끝에 줄을 추가합니다.

정답은 다음과 같습니다.

copy /b filename.ext +,,

나는 그것을 여기에서 발견했다 : /superuser/10426/windows-equivalent-of-the-linux-command-touch/764721#764721


답변

나는 여기에 얼마나 많은 대답이 틀렸는 지 놀랐다 . 파일에 아무것도 넣지 않으면 파일이와 같이 채워지고 파일 ECHO is ON에 에코하려고 $nul하면 문자 그대로 파일에 배치 $nul됩니다. 또한 PowerShell의 $null경우 파일로 에코 하면 실제로 0kb 파일이 아니라로 인코딩 된 UCS-2 LE BOM파일이 생성되므로 파일에 바이트 순서 표시 가 없어야 하는 경우 지저분해질 수 있습니다.

여기에있는 모든 답변을 테스트하고 유사한 답변을 참조한 후에는 콘솔 셸별로 작동한다고 보장 할 수 있습니다. 그냥 변경 FileName.FileExtension당신이 원하는 파일의 전체 또는 상대 경로에 touch; 업데이트 해 주신 Keith Russell 에게 감사드립니다 COPY NUL FILE.EXT:

타임 스탬프 업데이트가 포함 된 CMD

copy NUL FileName.FileExtension

이렇게하면 FileName.FileExtension크기가 0 바이트가 아니라 배치 한 파일이 새 파일로 생성 됩니다. 파일이 이미 존재하면 기본적으로 타임 스탬프를 업데이트하기 위해 제자리에 자체 복사됩니다. 나는 이것이 1 : 1 기능보다 더 많은 해결 방법이라고 말하고 touch있지만 다른 내용을 변경하지 않고 파일의 타임 스탬프를 업데이트 할 수있는 CMD를위한 내장 도구를 모른다.

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

if not exist FileName.FileExtension copy NUL FileName.FileExtension

Powershell w / Timestamp 업데이트

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-작성된 파일에서 파일 크기를 바이트 단위로 할당합니다


답변

Windows Power Shell에서 다음 명령을 사용할 수 있습니다.

New-Item <filename.extension>

또는

New-Item <filename.extension> -type file

참고 : 새로운 품목은 그것의 별칭으로 대체 될 수 NI