it-swarm.asia

ويندوز يعادل الأمر لينكس "اللمس"؟

ما الذي تستخدمه عندما تريد تحديث حقل تاريخ التعديل لملف على Windows؟

  1. أوامر يمكن الوصول إليها عبر C++ أو .NET أو C # أو أي شيء أصلي لنظام Windows (يفضل Windows Vista)
  2. الأدوات/التطبيقات يفضل أن تكون مجانية ، وإذا كان ذلك ممكنا ، فتح المصدر كذلك

تحرير: هناك بالفعل صفحة للتطبيقات كما أشار CheapScotsman هنا .

إذا كان أي شخص يعرف كيف يمكنني القيام بذلك عبر C++ ، C # ، WSH أو شيء مشابه ، جيد وجيد ، وإلا أعتقد أن كل شيء آخر مشمول في السؤال المرتبط.

167
facepalmd

إذا كنت ترغب في لمس ختم تاريخ ملف باستخدام النوافذ ، استخدم الأمر التالي في موجه الأوامر:

copy /b filename.ext +,,

(حيث filename.ext هو اسم ملفك). رمز +,, هو علامة خاصة لـ copy لإخباره ببساطة تحديث التاريخ/الوقت في الملف :

* تغيير وقت وتاريخ الملف

إذا كنت تريد تعيين الوقت والتاريخ الحاليين لملف ما دون تعديل الملف ، استخدم بناء الجملة التالي:

copy /b Source+,,

تشير الفواصل إلى حذف معلمة الوجهة.

تحرير بناءً على تعليقات Lumi و Justin: ضع هذا في ملف دفعي ، على سبيل المثال. touch.cmd

@COPY /B %1+,, %1

يعمل هذا حتى إذا كان الملف غير موجود في الدليل الحالي (تم اختباره على Windows 7).

348
Gish Domains

لقد استخدمت وأوصى unxutils التي هي منافذ Win32 الأصلي والكثير من أدوات Unix الشائعة. يوجد أمر touch هناك.

160
Greg Hewgill

إذا كان كل ما تريده هو تغيير تاريخ آخر تعديل للملف (الذي كان حالتي):

C:\> powershell  (ls your-file-name-here).LastWriteTime = Get-Date
95
ThiagoAlves
type nul >>file & copy file +,,
  • ينشئ file إذا لم يكن موجودًا.
  • يترك محتويات الملف وحده.
  • يستخدم فقط cmd المدمج.
  • كلا آخر وصول و إنشاء مرات تحديثها.

تحديث

جاه! هذا لا يعمل على الملفات للقراءة فقط ، بينما touch يعمل. أقترح:

: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 للغموض '+' والفواصل:

نسخ/ب المصدر + ،

تشير الفواصل إلى حذف معلمة الوجهة.

يدعم أمر copy دمج ملفات متعددة في ملف وجهة واحد. نظرًا لأنه لا يمكن تحديد وجهة فارغة باستخدام حرف مسافة في موجه الأوامر ، يمكن استخدام فواصل اثنين للدلالة على ذلك.

وهذا هو مرجع أمر نسخة Technet: http://technet.Microsoft.com/en-us/library/bb490886.aspx

32
Faredoon

إذا كنت ترغب في ترميزها بنفسك ، فإن .NET يوفر File.SetLastAccessTime ، File.SetCreationTime و File.SetLastWriteTime الطرق.

23
Fredrik Mörk

فيما يلي إصدار متكرر باستخدام powershell ... سيؤدي ذلك إلى تغيير آخر وقت تم تعديله لجميع الملفات والدلائل الفرعية ، والملفات الموجودة ضمن الدلائل الفرعية لهذا الدليل

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

يحتوي GnuWin32 project على منافذ Windows لإصدارات Gnu من الأدوات المساعدة لسطر الأوامر Unix.

يأتي كعدد من الحزم المنفصلة ويمكنك تثبيت الأوامر التي تحتاجها فقط دون أي تبعيات أخرى. بالنسبة لـ touch ، ستحتاج إلى CoreUtils الحزمة.

15
Dave Webb

حاولت هذا لإنشاء ملف فارغ في البرنامج النصي الدفعي الخاص بي. يمكنك استخدام هذا:

ECHO text>file1.txt
15
pkm

cygwin يأتي مع touch. أعلم أنك ذكرت أنك لا تريد تثبيت إطار كامل ، ولكن cygwin خفيف الوزن للغاية ، ويمكن استدعاؤه من نافذة أوامر dos دون تشغيل سطر الأوامر بالكامل الذي يشبه يونيكس.

يمكنك أيضًا التحكم في الأدوات المراد تثبيتها ، بحيث يمكنك ببساطة تثبيت ملف touch.exe وترك باقي الإطار.

14
serg10

إليك ملف regfile البسيط الذي كتبته إلى انقر بزر الماوس الأيمن فوق "touch" في مستكشف Windows . سيكون من السهل كتابة البرنامج النصي أيضًا ، لأنه يتصل فقط:

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

منافذ win32 الأصلية للعديد من أوامر يونيكس ، بما في ذلك اللمس.

لقد استخدمته من قبل ويعمل بشكل جيد - لا يوجد تثبيت ، لا DLLs ، الخ

12
Adam Davis

جرب هذا واحد من CodeProject .

  • لا حاجة لتثبيت.
  • إذا كنت تريد ، يمكنك حتى تعديل المصدر.
11
Prakash

يمكنك أيضًا تثبيت Cygwin والتي تمنحك اللمس بالإضافة إلى مجموعة كبيرة من أوامر * NIX الأخرى.

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). نسخ جميع الأسطر التالية إلى ملف ريج. قم بتشغيل الملف واعتمد السؤال. انقر بزر الماوس الأيمن على أي ملف (أو ملفات متعددة) - أصبح خيار "Touch File" متاحًا الآن.

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 لمشروع واحد أو أكثر ، فإن الأمر git-bash المستند إلى mingw لـ Windows لديه الأمر touch. أريد أن أشكر @ greg-hewgill على الإشارة إليّ أن الأدوات المساعدة غير المتوافقة مع نظام التشغيل windows ، لأن ذلك هو الذي وضعني على فكرة تجربة اللمس في git-bash.

3
Superole

في PowerShell جرب:

ni fileName.txt

NI هو اسم مستعار لـ New-Item cmdlet.

3
Monfa.red

لقد وجدت طريقة سريعة للقيام بذلك إذا كنت قد قمت بتثبيت vim (ليست كبيرة بالنسبة للملفات الكبيرة ، سيتم فتح الملف بالكامل ثم إغلاقه ...)

vim foobar.txt +wq!

يعين "+" الوسيطة لتشغيل الأوامر التالية. "وك"! هو "الكتابة ، استقال ، القوة". سيؤدي هذا إلى فتح الملف ، والقيام بحفظ ، ثم إغلاقه بعد ذلك مباشرة.

2
Jason

احفظ ما يلي باسم touch.bat في مجلد٪ windir٪\system32 أو أضف المجلد الذي تم حفظه فيه إلى متغير بيئة 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 المباشر مع رموز أسماء الملفات ، والتغلب المزدوج عليها كابوس.

كان حلي هو جعل جزء "اللمس" نصًا PowerShell منفصلًا والذي أسماه "CLONE-FILE-DATE.ps1" ويحتوي على:

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

يمكن العثور على البدائل الخمسة المذكورة أعلاه ، بالإضافة إلى ثلاثة أخرى لم يتم ذكرها هنا ، على SuperUser: "Windows Recursive Touch Command"

1
JdeBP

هذا لا علاقة له بالسؤال الأصلي قليلاً ، لكنني أجد هذا مفيدًا جدًا على نظام التشغيل Windows بسبب واجهة المستخدم الرسومية.

أنا أستخدم الأداة المساعدة TouchPro التي توفرGUI(يتم الإنشاء في Explorer Shell):

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 من أجل إجراء تغييرات على لون خلفية "بلاط التطبيق" مرئيًا ، راجع هذا SO question . بدلاً من تطبيق إحدى الأدوات الذكية أعلاه ، أجد أنه من الأسهل تحرير حقل التعليق الخاص بالاختصار. معظم الناس يتركون هذا فارغًا ، ولكن بالطبع ، يتم وضع تعليق مفيد بسرعة. وإذا كان هناك تعليق ، فإن إضافة أو إزالة فترة نهائية لا يضر أبدًا.

0
Roland

أقدر أن هذا سؤال قديم ، لقد اكتشفت لمسة على نظام Windows 10 الخاص بي. لقد قمت بتنزيل Git وتثبيته من هنا (على ما أظن) ويبدو أن اللمس وأدوات مساعدة أخرى مختلفة موجودة في مجلد bin.

0
0909EM

نظرًا لأنني كنت بحاجة إلى هذا بالإضافة إلى عدد من الأشياء الأخرى ، فقد قمت بإنشاء ملحق Shell الخاص بي الذي يقوم بذلك: AllSorts لقد قمت أيضًا بفتح هذا المصدر - هنا

0
Stijn Sanders