Copier des fichiers à l'aide de RunProgramJ'ai besoin de temps en temps de mettre à jour certains fichiers de configuration sur les PC des utilisateurs, et je veux le faire automatiquement. Dans le passé, j'ai créé des fichiers .bat temporaires et les ai exécutés avec open(). Maintenant, j'essaie d'utiliser runprogram pour faire la même chose mais cela ne fonctionne pas. Je pense que j'y suis presque - toute aide est grandement appréciée.
Voici mon programme :
old_file = "C:\some directory\file1.ext";
new_file = "Z:\zdrive folder\file1.ext";
d1 = last modification date(old_file);
d2 = last modification date(new_file);
if (d1 != d1,
options_list = evallist({"copy", "/y", evalinsert("\["^new_file^"]\"), evalinsert("\["^old_file^"]\")});
status = runprogram(executable("cmd.exe"), options(options_list), readfunction("text"));
);Si les dates ne sont pas identiques, il place des guillemets doubles autour de chaque chemin de nom de fichier et exécute un copy/y dans un shell DOS. Je suis sous Windows 7 btw. J'ai exécuté la chaîne dans une fenêtre DOS et elle a copié le fichier sans problème.
Re : Copier des fichiers avec RunProgramQuelques notes sur copier un fichier( fichier de départ, fichier de destination ) :
- Le déposer ne peut pas exister, donc je dois d'abord le supprimer (en utilisant le fichier existe et supprimer le fichier )
- Le copier un fichier programme gère les noms de fichiers de chemin unc (par exemple \\smith.company.com\dir1\dir2\dir3\file.ext). La commande de copie DOS semblait avoir des problèmes avec cela.
Donc, copier un fichier règle le jour! Merci encore.
Re : Copier des fichiers avec RunProgramMerci Justin et Craige. je pense que je vais utiliser copier un fichier car c'est une solution plus simple. Mais c'est bien de savoir s'en servir exécuter de programme avec les commandes DOS intégrées.
Re : Copier des fichiers avec RunProgramUn peu plus d'informations ici , qui explique que dir et copy sont intégrés à l'interpréteur cmd.exe.
Re : Copier des fichiers avec RunProgramIl existe en fait une fonction JSL (Copy File) qui le fera pour vous.
Si vous préférez utiliser RunPogram, vous devrez inclure la commande de copie avec le chemin d'accès aux deux fichiers dans une seule option de chaîne. J'avais également besoin d'inclure l'option "/c" afin d'exécuter la commande avant de terminer.
Names Default To Here( 1 );
old_file = "C:\some directory\file1.ext";
new_file = "Z:\zdrive folder\file1.ext";
d1 = last modification date(old_file);
d2 = last modification date(new_file);
if (d1 != d1,
command_string = "/c copy" || new_file || " " || old_file;
status = RunProgram(
Executable( "CMD.EXE" ),
Options( {"/y", command_string} ),
ReadFunction( "text" )
);
);