it-swarm-korea.com

Windows 명령은 'touch'명령과 동일합니까?

Windows에서 파일의 날짜 수정 필드를 업데이트하려면 무엇을 사용합니까?

  1. C++, .NET, C # 또는 Windows 기본 (Vista 선호)을 통해 액세스 할 수있는 명령
  2. 도구/응용 프로그램 을 사용하지 않는 것이 좋습니다. 가능한 경우 오픈 소스도 가능합니다.

편집 : 이미 CheapScotsman 이 지적한 애플리케이션 용 페이지가 있습니다 .

누구든지 C++, C #, WSH 또는 이와 비슷한, 잘하고 좋은 것을 통해이 작업을 수행 할 수있는 방법을 알고 있다면 그 밖의 모든 것이 덮여 있다고 생각할 것입니다. 링크 된 질문에서.

167
facepalmd

창을 사용하여 파일의 날짜 스탬프를 만지려면 프롬프트 프롬프트에서 다음 명령을 사용하십시오.

copy /b filename.ext +,,

(여기서 filename.ext는 파일 이름입니다). +,,copy에 특수 플래그를 지정하여 파일에 날짜/시간을 간단히 업데이트하도록 지시합니다 .

* 파일의 시간과 날짜 변경

파일을 수정하지 않고 파일에 현재 시간과 날짜를 지정하려면 다음 구문을 사용하십시오.

copy /b Source+,,

쉼표는 Destination 매개 변수의 누락을 나타냅니다.

Lumi와 Justin의 주석을 기반으로 편집하십시오 : 이것을 배치 파일에 넣으십시오. touch.cmd

@COPY /B %1+,, %1

이 파일이 현재 디렉토리 (Windows 7에서 테스트 됨)에 없더라도 작동합니다.

349
Gish Domains

필자는 일반적인 Unix 유틸리티의 Win32 전용 포트 인 unxutils 를 사용하고 추천했습니다. 거기에 touch 명령이 있습니다.

160
Greg Hewgill

원하는 경우 파일의 마지막 수정 날짜를 변경하는 것입니다 (필자의 경우).

C:\> powershell  (ls your-file-name-here).LastWriteTime = Get-Date
95
ThiagoAlves
type nul >>file & copy file +,,
  • 존재하지 않는 경우 filename__을 작성합니다.
  • 파일 내용 만 남겨 둡니다.
  • cmd내장 함수 만 사용합니다.
  • 마지막 액세스 만들기번 모두 업데이트되었습니다.

업데이트

가! touchname__은 읽기 전용 파일에서는 작동하지 않습니다. 나는 제안한다.

:touch
if not exist "%~1" type nul >>"%~1"& goto :eof
set _ATTRIBUTES=%~a1
if "%~a1"=="%_ATTRIBUTES:r=%" (copy "%~1"+,,) else attrib -r "%~1" & copy "%~1"+,, & attrib +r "%~1"
58
bobbogo

@ 대쉬 - 톰 - 뱅 :

신비한 '+'및 쉼표에 대한 Technet의 설명은 다음과 같습니다.

복사/b 소스 + ,

쉼표는 Destination 매개 변수의 누락을 나타냅니다.

Copy 명령은 여러 파일을 단일 대상 파일로 병합하는 것을 지원합니다. 공백 대상은 명령 프롬프트에서 공백 문자를 사용하여 지정할 수 없기 때문에 두 개의 쉼표를 사용하여이를 나타낼 수 있습니다.

그리고 이것은 Technet의 복사 명령 참조입니다 : http://technet.Microsoft.com/en-us/library/bb490886.aspx

32
Faredoon

코드를 직접 코딩하려는 경우 .NET은 File.SetLastAccessTime , File.SetCreationTimeFile.SetLastWriteTime 메소드가 있습니다.

23
Fredrik Mörk

다음은 powershell을 사용하는 재귀 버전입니다.이 명령은 모든 파일과 하위 디렉토리의 마지막 수정 시간과이 디렉토리의 하위 디렉토리에있는 파일을 변경합니다.

ps c:myDir> Get-ChildItem . * -recurse | ForEach-Object{$_.LastWriteTime = get-date}
21
roger

GnuWin32 프로젝트에는 유닉스 명령 행 유틸리티의 Gnu 버전의 Windows 포트가 있습니다.

별도의 패키지로 제공되며 다른 종속성없이 필요한 명령 만 설치할 수 있습니다. touch에 대해 CoreUtils 패키지가 필요합니다.

15
Dave Webb

배치 스크립트에서 빈 파일을 만들려고했습니다. 이것을 사용할 수 있습니다 :

ECHO text>file1.txt
15
pkm

cygwin 에는 touch이 (가) 있습니다. 나는 당신이 전체 프레임 워크를 설치하고 싶지는 않지만 Cygwin은 매우 가볍다 고 말했고 유닉스 계열의 명령 줄을 사용하지 않고 dos 명령 창에서 호출 할 수있다.

설치할 도구를 제어 할 수 있으므로 touch.exe 파일을 설치하고 나머지 프레임 워크는 그대로 둘 수 있습니다.

14
serg10

다음은 Windows 탐색기 에서 마우스 오른쪽 버튼으로 "touch"를 추가 한 간단한 regfile입니다. 방금 전화를 걸기 때문에 쉽게 스크립트 할 수 있습니다.

cmd.exe /c copy %1+nul %1 /by
14
Jon Galloway

터치를 포함한 많은 유닉스 명령어의 네이티브 win32 포트 .

이전에 사용했는데 제대로 작동합니다. 설치가 없거나 DLL이 없습니다.

12
Adam Davis

이 코드를 CodeProject 에서 사용해보십시오.

  • 설치할 필요가 없습니다.
  • 원하는 경우 원본을 수정할 수도 있습니다.
11
Prakash

Cygwin 를 설치할 수도 있습니다.이 도구는 다른 * NIX 명령과 마찬가지로 Touch를 제공합니다.

9
jamesaharvey

스택 오버플로에 대한 비슷한 질문 .

(touch의 다른 기능을 무시하고) 타임 스탬프를 업데이트하려면 다음을 사용하십시오.

copy /b filename.ext +,,
5
Dennis Williamson

많은 유닉스 유틸리티의 Windows 포트가 있습니다. unxutils 또는 GnuWin32 프로젝트를 살펴보십시오.

5
VladV

웹 사이트에서 :

Funduc Software Touch 는 하나 이상의 파일에서 시간/날짜 및/또는 속성 스탬프를 변경할 수있는 무료 '터치'유틸리티입니다. 또한 FS Touch는 기존 파일 시간에서 지정된 시간 (초)을 더하거나 뺄 수 있습니다. '복잡한 파일 마스크'를 통해 변경할 파일 및/또는 하위 디렉토리를 지정할 수 있습니다. 프로그램은 대화식 또는 명령 줄에서 실행할 수 있습니다. 버전 7.2의 새로운 기능은 파일 수정 시간 소인 +/- 지정된 초 수를 변경하는 명령 행 스위치입니다.

FS Touch는 Windows XP, Vista, Windows 7 및 Windows 8에서 실행됩니다.

4
Marek

이 내용은 reg 파일에 저장할 수 있습니다. 이렇게하면 "터치 파일"기능 (Windows 7에서 테스트 됨)이있는 모든 파일에 대한 마우스 오른쪽 버튼 클릭 상황에 맞는 메뉴가 추가됩니다. reg 파일에 다음 행을 모두 복사 하십시오 . 파일을 실행하고 질문을 승인하십시오. 파일 (또는 여러 파일)을 마우스 오른쪽 버튼으로 클릭하십시오 - "파일 터치"옵션을 사용할 수 있습니다.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\Shell]

[HKEY_CLASSES_ROOT\*\Shell\Touch File]

[HKEY_CLASSES_ROOT\*\Shell\Touch File\command]
@="cmd /C copy /b \"%1\" +,,"
4
SharonBL
4
CheapScotsman

하나 이상의 프로젝트에 git을 사용하는 경우 Windows 용 mingw 기반 git-bash에는 touch 명령이 있습니다. @ greg-hewgill이 윈도우에 nix 유틸리티가 있다는 것을 지적 해 주신 것에 감사드립니다. 왜냐하면 저에게 bit에서 손을 대볼 생각이 들기 때문입니다.

3
Superole

powerShell에서 시도해보십시오.

ni fileName.txt

NINew-Item cmdlet의 별칭입니다.

3
Monfa.red

Vim을 설치 한 경우 빠른 방법을 찾았습니다 (대용량 파일에는 적합하지 않고 파일 전체를 열고 닫을 것입니다 ...)

vim foobar.txt +wq!

"+"는 다음 명령을 실행하기위한 인수를 설정합니다. "wq!" "write, quit, force"입니다. 파일을 열고 저장 한 다음 바로 닫습니다.

2
Jason

% windir %\system32 폴더에 touch.bat로 다음을 저장하거나 PATH 환경 변수에 저장 폴더를 추가하십시오.

@echo off
if %1.==. goto end
if not exist %1 goto end
copy /b %1 +,, > nul
echo %1 touched!
:end

샘플 사용법 :

touch *.cpp
touch somefile.c

참조 : Microsoft KB 69581

2
Tim Partridge

기본적으로 다른 파일에서 파일 날짜를 복제/복제하는 '터치'기능을 원했고 배치 파일에서 사용할 수 있어야했습니다.

그래서 비디오 파일을 배치 파일에 드래그 앤 드롭하면 FFMPEG가 실행되고 입력 파일의 '만든 날짜'와 '수정 한 날짜'가 출력 파일에 복사됩니다.

이것은 유니 코드 파일 이름을 처리 할 때 배치 파일이 끔찍하고 인라인 PowerShell이 ​​파일 이름 기호로 엉망이되어 이중 이스케이프 처리가 악몽 일 때까지 처음에는 간단 해 보였습니다.

내 솔루션은 '터치'부분을 'CLONE-FILE-DATE.ps1'이라고 부르는 별도의 PowerShell 스크립트로 만들고 다음 내용을 포함합니다.

param
(
  [Parameter(Mandatory=$true)][string]$SourcePath,
  [Parameter(Mandatory=$true)][string]$TargetPath
)

(GI -LiteralPath $TargetPath).CreationTime  = (GI -LiteralPath $SourcePath).CreationTime
(GI -LiteralPath $TargetPath).LastWriteTime = (GI -LiteralPath $SourcePath).LastWriteTime

다음은 'CONVERT.BAT'배치 파일 내에서의 사용 예입니다.

%~dp0\ffmpeg -i "%~1" ACTION "%~1-output.mp4"

CHCP 65001 > nul && PowerShell -ExecutionPolicy ByPass -File "%~dp0\CLONE-FILE-DATE.PS1" "%~1" "%~1-output.mp4"

PowerShell은 읽을 수 있다고 생각합니다. 따라서 배치에 대해 설명 할 것입니다.

% ~ dp0 은 배치 파일의 현재 디렉토리입니다.

% ~ 1 은 따옴표없이 배치에 놓은 파일의 경로입니다.

CHCP 65001> nul 은 문자를 UTF-8로 설정하고 출력을 삼킨다.

- ExecutionPolicy ByPass 를 사용하면 사람들이 실수로 스크립트를 실행하는 것을 방지하기 위해 전역 정책을 수정하지 않고도 PowerShell을 실행할 수 있습니다.

1
WhoIsRich

시험

fsutil 파일 createnew new.txt 0

1
Peter Hacke

위에서 언급 한 5 가지 대안과 여기에 언급되지 않은 3 가지 옵션은 수퍼 유저에서 찾을 수 있습니다. "Windows Recursive Touch Command"

1
JdeBP

이것은 원래의 질문과 약간 관련이 없지만 GUI로 인해 Windows에서 매우 유용하다고 생각합니다.

나는 GUI (Explorer Shell으로 빌드)를 제공하는 TouchPro 유틸리티를 사용하고 있습니다.

http://www.jddesign.co.uk/products/touchpro/touchpro.htm

1
rustyx

음, 만약 당신이 정말로 touch 명령을 사용하고 싶다면 이것을 touch.bat라는 배치 파일에 넣고 C:\Windows에 붙여 넣을 수 있습니다 :

TYPE NUL >>%1

충분히 간단합니다.

1
MD XF

유닉스 사람들은 touch 명령을 사용하여 파일의 파일 날짜를 업데이트하는 일반적인 문제를 해결했습니다. 그러나 Windows의 경우 특수한 경우에 대해 더 간단한 방법이 가능한 경우가 있습니다.

응용 프로그램 바둑판의 배경색을 변경하려면 Windows 8.1에서 응용 프로그램 바로 가기의 타임 스탬프를 업데이트해야합니다 this SO question . 위의 영리한 도구 중 하나를 구현하는 대신 바로 가기의 주석 필드를 편집하는 것이 더 쉽습니다. 대부분의 사람들은 이것을 공란으로 남겨 두지 만 물론 유용한 주석을 신속하게 고안합니다. 또한 의견이있는 경우 최종 기간을 추가하거나 제거하면 해를 끼치 지 않습니다.

0
Roland

이 질문은 오래된 질문입니다. Windows 10 시스템에서 터치를 발견했습니다. 나는 여기 (나는 생각한다)에서 힘내를 다운로드하고 설치했다. 그리고 그것은 터치와 다양한 다른 유틸리티가 bin 폴더에있는 것처럼 보인다.

0
0909EM

이 또한 여러 가지가 필요했기 때문에 다음과 같은 자체 쉘 확장을 만들었습니다. AllSorts 저는 이것을 오픈 소스했습니다 여기

0
Stijn Sanders