Apa yang Anda gunakan ketika Anda ingin memperbarui bidang file yang dimodifikasi tanggal pada Windows?
- perintah yang dapat diakses melalui C ++, .NET, C #, atau sesuatu yang asli dari Windows (Vista lebih disukai)
- alat / aplikasi lebih disukai gratis, dan jika memungkinkan open source juga
Sunting: sudah ada halaman untuk aplikasi seperti yang ditunjukkan oleh CheapScotsman di sini .
Kalau ada yang tahu bagaimana saya bisa melakukan ini melalui C ++, C #, WSH atau sesuatu yang serupa, baik dan bagus, kalau tidak saya akan berpikir semuanya tercakup dalam pertanyaan terkait.
windows
file-attributes
touch
facepalmd
sumber
sumber
REM.>a
Jawaban:
Jika Anda ingin menyentuh cap tanggal file menggunakan windows, gunakan perintah berikut di prompt perintah:
(di mana
filename.ext
nama file Anda) Ini+,,
adalah tanda khusus untukcopy
memberitahukannya agar cukup memperbarui tanggal / waktu pada file :Edit berdasarkan komentar oleh Lumi dan Justin: masukkan ini dalam file batch, mis. touch.cmd
Ini berfungsi bahkan jika file tersebut tidak ada di direktori saat ini (diuji pada Windows 7).
sumber
type touch.bat
adalah@echo off
dan baris berikutnyacopy /b %1 +,,
- masukkan ke dalamC:\bin
atau apa yang Anda miliki untuk skrip Anda sendiri, dan kemudian Anda dapat menggunakannya sepertitouch myfile.txt
.copy /b Source+,, Source
- di manaSource
termasuk path lengkap ke file+,,
: Blogs.msdn.com/b/oldnewthing/archive/2013/07/10/10432879.aspxSaya telah menggunakan dan merekomendasikan unxutils yang merupakan port asli Win32 dari banyak utilitas Unix yang umum. Ada
touch
perintah di sana.sumber
"test тест τεστ.txt"
touch
perintah. Ini seperti hal lain di lingkungan nix, Anda bisa melakukannya atau sudo, atau tidak bisa karena Anda tidak memiliki hak istimewa.Jika yang Anda inginkan adalah mengubah tanggal modifikasi terakhir file (yang merupakan kasus saya):
sumber
gci -recu -inc "*.*" | % { $_.LastWriteTime = Get-Date }
file
jika tidak ada.cmd
built-in.MEMPERBARUI
Gah! Ini tidak berfungsi pada file read-only, sedangkan
touch
tidak. Saya menyarankan:sumber
filename +,,
sintaks aneh .@ dash-tom-bang:
Berikut ini penjelasan Technet tentang '+' dan koma yang misterius:
Perintah salin mendukung penggabungan banyak file menjadi satu file tujuan. Karena tujuan kosong tidak dapat ditentukan menggunakan karakter spasi pada prompt perintah, dua koma dapat digunakan untuk menunjukkan itu.
Dan ini adalah referensi perintah penyalinan Technet: http://technet.microsoft.com/en-us/library/bb490886.aspx
sumber
Jika Anda ingin mengodekannya sendiri, .NET menawarkan
File.SetLastAccessTime
,File.SetCreationTime
danFile.SetLastWriteTime
metode.sumber
di sini adalah versi rekursif menggunakan powershell ... ini akan mengubah waktu modifikasi terakhir untuk semua file dan subdirektori, dan file dalam subdirektori direktori ini
sumber
ls * -recurse | % { $_.LastWriteTime = Get-Date }
Proyek GnuWin32 memiliki port Windows dari versi Gnu dari utilitas baris perintah Unix.
Muncul sebagai sejumlah paket terpisah dan Anda dapat menginstal hanya perintah yang Anda butuhkan tanpa dependensi lain. Untuk
touch
Anda akan membutuhkan paket CoreUtils .sumber
cygwin
datang dengantouch
. Saya tahu Anda menyebutkan bahwa Anda tidak ingin menginstal seluruh kerangka kerja, tetapi cygwin cukup ringan, dan dapat dipanggil dari jendela perintah dos tanpa seluruh baris perintah unix-like dihidupkan.Anda juga dapat mengontrol alat apa yang harus diinstal, sehingga Anda bisa menginstal
touch.exe
file, dan meninggalkan sisa kerangka kerja.sumber
Saya mencoba ini untuk membuat file kosong di skrip batch saya. Anda bisa menggunakan ini:
sumber
echo pie>.gitignore
bekerja dengan baik - terima kasih!.gitignore.
dan ketika Anda menekan enter Windows menghapus periode trailing. Gila, tapi berhasil.Berikut adalah regfile sederhana yang saya tulis untuk menambahkan klik kanan "touch" di Windows explorer . Mudah untuk membuat skrip juga, karena hanya memanggil:
sumber
copy nul some_file
untuk membuat file kosong (yang saya lihattouch
paling sering digunakan).Port win32 asli dari banyak perintah unix , termasuk sentuhan.
Saya telah menggunakannya sebelumnya dan berfungsi dengan baik - tidak ada instalasi, tidak ada DLL, dll
sumber
Coba yang ini dari CodeProject .
sumber
Anda juga dapat menginstal Cygwin yang memberi Anda Sentuhan serta sejumlah besar perintah * NIX lainnya.
sumber
Ada banyak port Windows dari utilitas Unix. Lihat proyek unxutils atau GnuWin32 .
sumber
Dari pertanyaan serupa di Stack Overflow.
Untuk memperbarui cap waktu (mengabaikan fungsi lainnya
touch
), saya akan menggunakan:sumber
Bagaimana dengan codeproject "Touch for Windows": http://www.codeproject.com/KB/applications/touch_win.aspx
sunting; Pertanyaan yang sama seperti di sini: https://stackoverflow.com/questions/51435/windows-version-of-the-unix-touch-command/51439
sumber
dari situs web:
sumber
Konten ini dapat disimpan ke file reg. Ini akan menambahkan menu konteks klik kanan untuk semua file dengan kemampuan "Touch File" (diuji pada Windows 7). Salin semua baris berikut ke file reg. Jalankan file dan setujui pertanyaan. Klik kanan pada file apa pun (atau banyak file) - opsi "Touch File" sekarang tersedia.
sumber
Jika Anda menggunakan git untuk satu atau lebih proyek, mingw yang berbasis
git-bash
untuk Windows memilikitouch
perintah. Saya ingin mengucapkan terima kasih kepada @ greg-hewgill karena menunjukkan kepada saya bahwa 'nix utilities ada untuk windows, karena itulah yang membuat saya mencoba untuk menyentuh git-bash.sumber
di PowerShell coba:
NI
adalah alias dari cmdlet Item Baru .sumber
ni
perintah, dan mungkin menjelaskan lebih lanjut apa yang dilakukan perintah?New-Item
cmdlet tidak dapat digunakan untuk memperbarui waktu cap file yang ada.Simpan yang berikut ini sebagai touch.bat di folder% windir% \ system32 Anda atau tambahkan folder tempat ia disimpan ke variabel lingkungan PATH Anda:
Penggunaan sampel:
Referensi: Microsoft KB 69581
sumber
Saya menemukan cara cepat untuk melakukannya jika Anda telah menginstal vim (tidak bagus untuk file besar, akan membuka seluruh file kemudian menutupnya ...)
"+" Menetapkan argumen untuk menjalankan perintah berikut. "wq!" adalah "tulis, berhenti, paksa". Ini akan membuka file, melakukan save, lalu tutup segera sesudahnya.
sumber
Saya ingin fitur 'touch' untuk mengkloning / menggandakan tanggal file dari file lain, secara asli, dan dapat digunakan dari file batch.
Jadi 'drag and drop' file video ke file batch, FFMPEG berjalan, kemudian 'Date Created' dan 'Date Modified' dari file input akan disalin ke file output.
Ini tampak sederhana pada awalnya sampai Anda menemukan file batch mengerikan dalam menangani nama file unicode, PowerShell in-line mengacaukan dengan simbol nama file, dan melarikan diri dua kali adalah mimpi buruk.
Solusi saya adalah menjadikan bagian 'touch' sebagai skrip PowerShell terpisah yang saya sebut 'CLONE-FILE-DATE.ps1' dan berisi:
Maka di sini adalah contoh penggunaan dalam file batch 'CONVERT.BAT' saya:
Saya pikir PowerShell dapat dibaca, jadi hanya akan menjelaskan batch yang berbicara:
% ~ dp0 adalah direktori saat ini dari file batch.
% ~ 1 adalah path file yang jatuh ke batch tanpa tanda kutip.
CHCP 65001> nul mengatur karakter ke UTF-8 dan menelan output.
-ExecutionPolicy ByPass memungkinkan Anda untuk menjalankan PowerShell tanpa perlu mengubah kebijakan global, yang ada untuk mencegah orang-orang secara tidak sengaja menjalankan skrip.
sumber
Mencoba
file fsutil membuat new.txt 0
sumber
The FSUTIL utility requires that you have administrative privileges.
- dan tidak berlaku sepertitouch
file yang ada.Lima alternatif yang disebutkan di atas, ditambah tiga lagi yang tidak disebutkan di sini, dapat ditemukan di SuperUser: "Windows Recursive Touch Command"
sumber
Ini sedikit tidak terkait dengan pertanyaan awal, tetapi saya menemukan ini sangat berguna pada Windows karena GUI.
Saya menggunakan utilitas TouchPro yang menyediakan GUI (dibangun di shell explorer):
http://www.jddesign.co.uk/products/touchpro/touchpro.htm
sumber
Nah, jika Anda benar - benar ingin memiliki
touch
perintah yang tersedia, Anda dapat meletakkan ini dalam file batch yang disebuttouch.bat
dan memasukkannya keC:\Windows
:Cukup sederhana.
sumber
Orang-orang Unix memperbaiki masalah umum memperbarui tanggal file dari file apa pun dengan perintah sentuh . Namun, untuk Windows, terkadang metode yang lebih sederhana mungkin untuk kasus khusus.
Saya perlu memperbarui stempel waktu dari pintasan aplikasi di Windows 8.1 untuk membuat perubahan pada warna latar belakang Tile Aplikasi terlihat, lihat pertanyaan SO ini . Daripada menerapkan salah satu alat pintar di atas, saya merasa lebih mudah untuk mengedit bidang komentar dari pintasan. Sebagian besar orang membiarkan ini kosong, tetapi tentu saja, komentar yang berguna dengan cepat dikandung. Dan jika ada komentar, menambah atau menghapus periode terakhir tidak akan membahayakan.
sumber
Saya menghargai ini adalah pertanyaan lama, saya baru saja menemukan sentuhan pada sistem Windows 10 saya. Saya mengunduh dan menginstal Git dari sini (saya pikir) dan sepertinya sentuh dan berbagai utilitas lain ada di folder bin.
sumber