Windows 컴퓨터 에서이 오류가 발생합니다
'touch'는 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.
지시 에 따라 할 때 :
touch index.html app.js style.css
'touch'를 사용하는 것과 동등한 창이 있습니까? 이러한 종류의 명령을 구현하려면 이러한 파일을 직접 작성하고 타임 스탬프를 변경하도록 수정해야합니까? 그것은 ... 노드처럼 보이지 않습니다 ...
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
access denied
콘솔에 표시됩니다. 두 번째 옵션은 잘 작동합니다!
>>
첫 번째 방법은 아무 것도 사용 하지 않고 두 번째 파일은 파일 끝에 줄을 추가합니다. 정답은 superuser.com/questions/10426/…
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
type NUL > filename
(0 바이트 파일을 만듭니다)
type NUL >> filename
대답이 잘못되었습니다. 파일이 존재하지 않을 때만 작동합니다. 파일이 존재하는 경우, 첫 번째 방법은 아무 것도 사용하지 않고 두 번째 파일은 파일 끝에 줄을 추가합니다.
정답은 다음과 같습니다.
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
:
copy NUL FileName.FileExtension
이렇게하면 FileName.FileExtension
크기가 0 바이트가 아니라 배치 한 파일이 새 파일로 생성 됩니다. 파일이 이미 존재하면 기본적으로 타임 스탬프를 업데이트하기 위해 제자리에 자체 복사됩니다. 나는 이것이 1 : 1 기능보다 더 많은 해결 방법이라고 말하고 touch
있지만 다른 내용을 변경하지 않고 파일의 타임 스탬프를 업데이트 할 수있는 CMD를위한 내장 도구를 모른다.
if not exist FileName.FileExtension copy NUL FileName.FileExtension
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file} else {(ls FileName.FileExtension ).LastWriteTime = Get-Date}
예, 콘솔 내에서 단일 라이너로 작동합니다. PowerShell 스크립트 파일에 배치 할 필요가 없습니다.
if (!(Test-Path FileName.FileExtension -PathType Leaf)) {New-Item FileName.FileExtension -Type file}
fsutil file CreateNew FileName.FileExtension 0
하여 여전히 개선하고 있습니다 copy NUL Filename.FileExtension
.
copy
이상 fsutil
하지만 난 확신이 전도에 대해 알게 어떻게 해요 동안 ... 그것은을이었다 fsutil
하하! 왜 그런지 알아 내려고 노력하겠습니다 ...
명령 행에서 다음 명령을 사용하십시오.
fsutil file createnew filename requiredSize
다음과 같은 매개 변수 정보 :
fsutil-파일 시스템 유틸리티 (실행중인 실행 파일)
file-파일 작업을 트리거합니다
createnew-수행 할 조치 (새 파일 작성)
filename-말 그대로 파일 이름
requiredSize-작성된 파일에서 파일 크기를 바이트 단위로 할당합니다
NULL
s로 새 파일을 채 웁니다 ... 이상한 ... 그래서 0을 사용하면 requiredSize를 건너 뛰면 오류가 발생합니다 .. .
Windows Power Shell에서 다음 명령을 사용할 수 있습니다.
New-Item <filename.extension>
또는
New-Item <filename.extension> -type file
참고 : 새로운 품목은 그것의 별칭으로 대체 될 수 NI
'New-Item' is not recognized as an internal or external command
다음 명령을 사용하여 터치 기능을 복제 할 수 있습니다.
$>>filename
이 작업은이라는 프로그램을 실행하려고 시도 $
하지만 $
존재하지 않거나 출력을 생성하는 실행 파일이 아닌 경우 출력이 생성되지 않습니다. 본질적으로 기능에 대한 해킹이지만 다음과 같은 오류 메시지가 나타납니다.
'$'은 (는) 내부 또는 외부 명령, 실행 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.
오류 메시지를 원하지 않으면 다음 두 가지 중 하나를 수행 할 수 있습니다.
type nul >> filename
또는:
$>>filename 2>nul
그만큼 type
명령은 nul의 내용을 표시하려고 시도하지만 읽을 때 EOF (파일 끝) 만 반환합니다.
2>nul
오류 출력 (출력 2)을 nul로 보냅니다 (기록 될 때 모든 입력을 무시 함). 분명히 두 번째 명령 (with 2>nul
)은 type
입력이 더 빠르기 때문에 명령에 의해 중복됩니다 . 그러나 이제 최소한 옵션과 지식이 있습니다.
%ERRORLEVEL%
항상 0이 아닙니다. noop을 추가 || cd.
하여이 문제를 해결할 수는 있지만 항상 오류를 0으로 설정합니다. "touch"가 실패하면 원하는 결과가 아닐 수도 있습니다.
Windows Powershell 터미널에서 Unix / Mac OS X의 'touch'명령을 에뮬레이트하는 데 명령 type
도 echo
필요 하지 않습니다 . 다음 속기를 사용하십시오.
$null > filename
현재 위치에 'filename'이라는 빈 파일이 생성됩니다. 필요한 파일 이름 확장자 (예 : '.txt')를 사용하십시오.
출처 : /superuser/502374/equivalent-of-linux-touch-to-create-an-empty-file-with-powershell (댓글 참조)
echo
$null > filename
은 그 빈 출력을 파일 이름으로 보냅니다 (내 드리프트를 잡는 경우).
echo
에서는 필요한 표준 명령 줄 터미널 (cmd) 없이 작동 합니다 echo
. 혼란을 드려 죄송합니다.
Windows 명령 창 (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
(명령 줄 에뮬레이터)
Windows 시스템 내에서 모든 Linux 명령을 실행할 수 있습니다.
에서 다운로드 할 수 있습니다 https://cmder.net/
난 정말 좋아
파일이 존재하고 타임 스탬프 만 업데이트하면된다고 가정합니다.
type test.c > test.c.bkp && type test.c.bkp > test.c && del test.c.bkp
[cmd]
OP는 기본 Windows 설치로 압축되지 않은 명령 줄 유틸리티가 없음을 의미하는 CMD에서 기본적으로 작동하는 답변을 원한다는 것을 의미합니다. CScript, WScript 및 PowerShell과 같은 기본 제공 Windows 스크립팅 언어조차 거의 모든 스크립팅 언어를 제외합니다. 요점은 CMD 환경에서 작동한다는 것이 아니라 권한 문제를 포함하지 않고 CMD에 액세스 할 수있는 사람이라면 누구나 가능하다는 것입니다.
touch
. 여기에 다른 토론 : superuser.com/questions/10426/… 및 Cygwin 라이브러리 는 Windows에서 Unix 명령의 공통 도구 세트입니다.