Qu'est-ce que vous utilisez lorsque vous souhaitez mettre à jour le champ date-modifié d'un fichier sous Windows?
- commandes accessibles via C ++, .NET, C # ou quelque chose de natif à Windows (Vista de préférence)
- outils / applications de préférence libres, et si open source possible aussi bien
Edit: il y a déjà une page pour les applications comme l' a souligné CheapScotsman ici .
Si quelqu'un sait comment je peux le faire via C ++, C #, WSH ou quelque chose de similaire, tout va bien, sinon je penserais que tout le reste est couvert dans la question liée.
windows
file-attributes
touch
facepalmd
la source
la source
REM.>a
Réponses:
Si vous souhaitez toucher l'horodatage d'un fichier à l'aide de Windows, utilisez la commande suivante à l'invite de commande:
(où
filename.ext
est le nom de votre fichier). Le+,,
est un drapeau spécial pourcopy
lui dire de simplement mettre à jour la date / heure sur le fichier :Modifier basé sur les commentaires de Lumi et Justin: mettez ceci dans un fichier batch, par exemple. touch.cmd
Cela fonctionne même si le fichier ne se trouve pas dans le répertoire actuel (testé sous Windows 7).
la source
type touch.bat
is@echo off
et next linecopy /b %1 +,,
- mettez-le dansC:\bin
ou ce que vous avez pour vos propres scripts, et ensuite vous pourrez l’utiliser commetouch myfile.txt
.copy /b Source+,, Source
- oùSource
inclut le chemin d'accès complet au fichier+,,
: blogs.msdn.com/b/oldnewthing/archive/2013/07/10/10432879.aspxJ'ai utilisé et recommandé unxutils, qui sont des ports Win32 natifs de nombreux utilitaires Unix courants. Il y a une
touch
commande à l'intérieur.la source
"test тест τεστ.txt"
touch
commande. C'est comme n'importe quoi d'autre dans les environnements nix, vous pouvez le faire ou le poursuivre, ou vous ne pouvez pas le faire parce que vous n'avez pas de privilèges.Si tout ce que vous voulez, c'est changer la date de la dernière modification du fichier (ce qui était mon cas):
la source
gci -recu -inc "*.*" | % { $_.LastWriteTime = Get-Date }
file
s'il n'existe pas.cmd
intégrés.MISE À JOUR
Gah! Cela ne fonctionne pas sur les fichiers en lecture seule, alors que
touch
si. Je suggère:la source
filename +,,
syntaxe bizarre .@ dash-tom-bang:
Voici l'explication de Technet sur le mystérieux '+' et les virgules:
La commande copy prend en charge la fusion de plusieurs fichiers en un seul fichier de destination. Comme une destination vide ne peut pas être spécifiée à l'aide d'un caractère d'espacement à l'invite de commande, vous pouvez utiliser deux virgules pour le signaler.
Et voici la référence aux commandes de copie de Technet: http://technet.microsoft.com/en-us/library/bb490886.aspx
la source
Si vous vous sentez comme le codage vous - même, .NET offre les
File.SetLastAccessTime
,File.SetCreationTime
et lesFile.SetLastWriteTime
méthodes.la source
voici une version récursive utilisant powershell ... cela changera la dernière heure de modification pour tous les fichiers et sous-répertoires, et les fichiers dans les sous-répertoires de ce répertoire
la source
ls * -recurse | % { $_.LastWriteTime = Get-Date }
Le projet GnuWin32 possède les ports Windows des versions Gnu des utilitaires de ligne de commande Unix.
Il se présente sous forme de plusieurs packages distincts et vous pouvez installer uniquement les commandes dont vous avez besoin, sans autres dépendances. Car
touch
vous auriez besoin du paquet CoreUtils .la source
cygwin
vient avectouch
. Je sais que vous avez indiqué que vous ne souhaitiez pas installer un cadre complet, mais cygwin est assez léger et peut être appelé à partir de la fenêtre de commande dos sans que la ligne de commande de type Unix ne soit activée.Vous pouvez également contrôler les outils à installer pour pouvoir simplement installer le
touch.exe
fichier et quitter le reste de la structure.la source
J'ai essayé de créer un fichier vide dans mon script batch. Vous pouvez utiliser ceci:
la source
echo pie>.gitignore
travaillé un régal - merci!.gitignore.
et lorsque vous appuyez sur Entrée, Windows supprime la période de fin. Fou, mais ça marche.Voici un fichier de configuration simple que j'ai écrit pour ajouter un clic droit "toucher" dans l'explorateur Windows . Ce serait facile de le script aussi, puisqu'il appelle simplement:
la source
copy nul some_file
de créer un fichier vide (ce que je vois letouch
plus souvent utilisé).Ports Win32 natifs de nombreuses commandes unix , y compris touch.
Je l'ai déjà utilisé et cela fonctionne bien - pas d'installation, pas de DLL, etc.
la source
Essayez celui-ci de CodeProject .
la source
Vous pouvez également installer Cygwin, qui vous donne le toucher, ainsi qu'une pléthore d'autres commandes * NIX.
la source
Il existe des ports Windows de nombreux utilitaires Unix. Jetez un oeil à UnxUtils ou GnuWin32 projets.
la source
D'une question similaire sur Stack Overflow.
Pour mettre à jour les horodatages (en ignorant les autres fonctionnalités de
touch
), je choisirais:la source
Que diriez-vous de codeproject "Touch pour Windows": http://www.codeproject.com/KB/applications/touch_win.aspx
modifier; Même question que ici: https://stackoverflow.com/questions/51435/windows-version-of-the-unix-touch-command/51439
la source
sur le site:
la source
Ce contenu peut être enregistré dans un fichier reg. Cela ajoutera un menu contextuel par clic droit pour tous les fichiers dotés de la fonction "Touch File" (testé sur Windows 7). Copiez toutes les lignes suivantes dans le fichier reg. Exécutez le fichier et approuvez la question. Faites un clic droit sur n’importe quel fichier (ou plusieurs fichiers) - L’option "Touch File" est maintenant disponible.
la source
Si vous utilisez git pour un ou plusieurs projets, la commande mingw basée
git-bash
pour Windows a latouch
commande. Je tiens à remercier @ greg-hewgill de m'avoir signalé que des utilitaires nix existent pour Windows, car c’est ce qui m’a donné l’idée d’essayer de toucher à git-bash.la source
Dans PowerShell, essayez:
NI
est un alias de la cmdlet New-Item .la source
ni
commande, et peut-être décrire davantage le rôle de la commande?New-Item
cmdlet ne peut pas être utilisée pour mettre à jour l'horodatage d'un fichier existant.Enregistrez ce qui suit sous le nom touch.bat dans votre dossier% windir% \ system32 ou ajoutez le dossier dans lequel il est enregistré dans votre variable d’environnement PATH:
Exemple d'utilisation:
Référence: Microsoft KB 69581
la source
J'ai trouvé un moyen rapide de le faire si vim est installé (pas génial pour les gros fichiers, ouvrira tout le fichier puis le fermera ...)
Le "+" définit l'argument pour exécuter les commandes suivantes. "wq!" est "écris, quitte, force". Cela ouvrira le fichier, fera une sauvegarde, puis le fermera immédiatement après.
la source
Je voulais la fonctionnalité 'tactile' de clonage / duplication du fichier date d'un autre fichier, de manière native, et utilisable depuis un fichier batch.
Donc, faites glisser le fichier vidéo dans un fichier batch, FFMPEG s'exécute, puis la date de création et la date de modification du fichier d'entrée sont copiées dans le fichier de sortie.
Cela semblait simple au début, jusqu'à ce que vous constatiez que les fichiers de traitement par lots gâchent le traitement des noms de fichiers Unicode, que PowerShell en ligne se mêle aux symboles de nom de fichier et que leur échapper est un cauchemar.
Ma solution a été de faire de la partie tactile un script PowerShell distinct que j’ai appelé "CLONE-FILE-DATE.ps1" et qui contient:
Ensuite, voici un exemple d'utilisation dans mon fichier de commandes 'CONVERT.BAT':
Je pense que le PowerShell est lisible, alors expliquons simplement le lot:
% ~ dp0 est le répertoire actuel du fichier de commandes.
% ~ 1 est le chemin du fichier déposé dans le lot sans guillemets.
CHCP 65001> nul définit les caractères sur UTF-8 et avale la sortie.
-ExecutionPolicy ByPass vous permet d'exécuter PowerShell sans avoir à modifier la stratégie globale, qui permet d'éviter que des personnes n'exécutent des scripts par inadvertance.
la source
Essayer
fichier fsutil createnew new.txt 0
la source
The FSUTIL utility requires that you have administrative privileges.
- et cela ne se comporte pas commetouch
pour les fichiers existants.Les cinq alternatives mentionnées ci-dessus, plus trois autres non mentionnées ici, peuvent être trouvées dans SuperUser: "Windows Recursive Touch Command"
la source
Ceci est légèrement différent de la question initiale, mais je trouve cela très utile sous Windows en raison de l'interface graphique.
J'utilise l'utilitaire TouchPro qui fournit une interface graphique (construite dans l'explorateur shell):
http://www.jddesign.co.uk/products/touchpro/touchpro.htm
la source
Eh bien, si vous voulez vraiment avoir la
touch
commande disponible, vous pouvez le mettre dans un fichier batch appelétouch.bat
et le coller dansC:\Windows
:Assez simple.
la source
Les gens d'Unix ont résolu le problème général de la mise à jour de la date d'un fichier avec la commande touch . Cependant, pour Windows, une méthode plus simple est parfois possible pour des cas particuliers.
Je dois mettre à jour l'horodatage d'un raccourci d'application dans Windows 8.1 afin d'apporter des modifications à la couleur d'arrière-plan de la mosaïque d'application, reportez -vous à la question relative aux SO . Plutôt que de mettre en œuvre l'un des outils intelligents ci-dessus, je trouve plus facile de modifier le champ de commentaire du raccourci. La plupart des gens laissent ce champ vide, mais bien sûr, un commentaire utile est rapidement conçu. Et si un commentaire existe, ajouter ou supprimer une période finale ne nuit jamais.
la source
J'apprécie que c'est une vieille question, je viens de découvrir tactile sur mon système Windows 10. J'ai téléchargé et installé Git à partir d' ici (je pense) et il semble que touch et divers autres utilitaires sont dans le dossier bin.
la source