Copia archivos usando RunProgramNecesito actualizar algunos archivos de configuración en las PC de los usuarios de vez en cuando, y quiero hacerlo automáticamente. En el pasado, he creado archivos temporales .bat y los he ejecutado con open (). Ahora estoy tratando de usar runprogram para hacer lo mismo pero no funciona. Creo que casi estoy allí, cualquier ayuda es muy apreciada.
Aquí está mi programa:
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 las fechas no son idénticas, coloca comillas dobles alrededor de cada ruta de nombre de archivo y ejecuta una copia / y en un shell de DOS. Estoy ejecutando Windows 7 por cierto. Corrí la cadena en una ventana de DOS y copié el archivo sin ningún problema.
Re: Copia archivos usando RunProgramAlgunas notas sobre copiar archivo( desde archivo, a archivo ) :
- los archivar no puede existir, así que tengo que borrarlo primero (usando El archivo existe y borrar archivo )
- los copiar archivo el programa maneja los nombres de archivo unc-path (por ejemplo, \\ smith.company.com \ dir1 \ dir2 \ dir3 \ file.ext). El comando de copia de DOS parecía tener problemas con eso.
Asi que, copiar archivo gobierna el dia! Gracias de nuevo.
Re: Copia archivos usando RunProgramGracias Justin y Craige. Creo que voy a usar copiar archivo ya que es una solución más sencilla. Pero es bueno saber usar ejecute el programa con comandos incorporados de DOS.
Re: Copia archivos usando RunProgramUn poco más de información. aquí , lo que explica que dir y copia están integrados en el intérprete cmd.exe.
Re: Copia archivos usando RunProgramEn realidad, hay una función JSL (Copiar archivo) que lo hará por usted.
Si prefiere utilizar RunPogram, deberá incluir el comando de copia con la ruta a los dos archivos dentro de una única opción de cadena. También necesitaba incluir la opción "/ c" para ejecutar el comando antes de terminar.
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" )
);
);