自动定时清理共享盘脚本及其通知功能详解

版权申诉
0 下载量 135 浏览量 更新于2024-10-26 收藏 2KB ZIP 举报
资源摘要信息:"Clear_File.zip" 标题: "Clear_File.zip" 描述: 该压缩包中包含了一个名为Clear_File.ps1的PowerShell脚本,该脚本能够在Windows环境下执行定时清理任务。脚本的主要功能包括:1) 删除30天内未被访问的文件;2) 删除空目录;3) 删除.exe、.dll、.com、.bat等类型的可执行文件。该脚本的操作指令来源于Folder.txt文件,用户可以根据需要自行添加或修改目录。此外,清理任务完成后,脚本还会向receiver.txt文件中列出的电子邮箱发送通知,以告知相关人员清理工作已完成。 知识点: 1. PowerShell 脚本编写和应用 PowerShell 是一种强大的脚本语言,它集成于Windows操作系统中,提供自动化的任务处理能力。使用PowerShell,可以创建各种脚本以自动化Windows环境下的日常管理任务。在此案例中,Clear_File.ps1脚本就是一个利用PowerShell实现自动化清理任务的实例。 2. 文件和目录的清理规则 在执行文件清理任务时,通常需要设定一定的规则来决定哪些文件或目录需要被删除。本脚本采用了以下清理规则: - 删除30天内未被访问的文件:此规则有助于清理长期未使用或被遗忘的文件,节省磁盘空间。 - 删除空目录:删除那些不包含任何文件的目录,有助于保持磁盘的整洁。 - 删除可执行文件:删除特定类型的可执行文件(如.exe、.dll、.com、.bat),这可能用于防止恶意软件或限制某些程序的执行。 3. 定时任务设置 在Windows系统中,可以通过任务计划程序(Task Scheduler)设置定时任务,定时执行特定的脚本或程序。这允许用户无需手动干预即可周期性地运行清理脚本,从而自动化管理任务。本脚本可以被配置为定时任务的一部分,以实现周期性清理。 4. 文件操作和管理 文件操作是计算机管理中的基础,包括文件的创建、读取、写入、移动、删除等。PowerShell提供了丰富的命令行接口来处理这些操作。例如,在本脚本中,可能会用到Get-ChildItem(别名gci)来获取目录列表,Remove-Item(别名rm)来删除文件和目录等。 5. 邮件通知功能 在清理任务执行完毕后,通过邮件通知相关人员可以确保清理工作的透明度,并使相关人员能够了解当前的磁盘状态。这一功能需要利用邮件发送命令,如Send-MailMessage cmdlet,在PowerShell中实现。脚本会读取receiver.txt文件中列出的邮箱地址,向这些地址发送清理完成的通知邮件。 6. 文本文件操作 Folder.txt和receiver.txt文件在本脚本中扮演着配置文件的角色。脚本会读取Folder.txt文件来确定需要清理的目录,而receiver.txt则用于获取邮件通知的接收者邮箱地址。文本文件操作在脚本中通常涉及读取和写入操作,PowerShell提供了多种方式来处理这些操作,如Get-Content和Set-Content cmdlets。 7. Windows环境下的脚本和工具使用 该脚本体现了在Windows环境下使用脚本和相关工具(如任务计划程序和PowerShell)进行系统管理的实践。了解如何在Windows环境中利用这些工具来编写和执行脚本,对于提高系统管理效率和自动化程度至关重要。 总结而言,Clear_File.zip中的内容涉及了PowerShell脚本的编写和应用、文件和目录的清理规则设定、定时任务的配置、邮件通知的实现、文本文件的操作,以及在Windows环境下对各种系统管理工具的运用。掌握这些知识点,能够帮助用户在日常工作中更加高效地进行IT系统维护和管理。

def train_step(real_ecg, dim): noise = tf.random.normal(dim) for i in range(disc_steps): with tf.GradientTape() as disc_tape: generated_ecg = generator(noise, training=True) real_output = discriminator(real_ecg, training=True) fake_output = discriminator(generated_ecg, training=True) disc_loss = discriminator_loss(real_output, fake_output) gradients_of_discriminator = disc_tape.gradient(disc_loss, discriminator.trainable_variables) discriminator_optimizer.apply_gradients(zip(gradients_of_discriminator, discriminator.trainable_variables)) ### for tensorboard ### disc_losses.update_state(disc_loss) fake_disc_accuracy.update_state(tf.zeros_like(fake_output), fake_output) real_disc_accuracy.update_state(tf.ones_like(real_output), real_output) ####################### with tf.GradientTape() as gen_tape: generated_ecg = generator(noise, training=True) fake_output = discriminator(generated_ecg, training=True) gen_loss = generator_loss(fake_output) gradients_of_generator = gen_tape.gradient(gen_loss, generator.trainable_variables) generator_optimizer.apply_gradients(zip(gradients_of_generator, generator.trainable_variables)) ### for tensorboard ### gen_losses.update_state(gen_loss) ####################### def train(dataset, epochs, dim): for epoch in tqdm(range(epochs)): for batch in dataset: train_step(batch, dim) disc_losses_list.append(disc_losses.result().numpy()) gen_losses_list.append(gen_losses.result().numpy()) fake_disc_accuracy_list.append(fake_disc_accuracy.result().numpy()) real_disc_accuracy_list.append(real_disc_accuracy.result().numpy()) ### for tensorboard ### # with disc_summary_writer.as_default(): # tf.summary.scalar('loss', disc_losses.result(), step=epoch) # tf.summary.scalar('fake_accuracy', fake_disc_accuracy.result(), step=epoch) # tf.summary.scalar('real_accuracy', real_disc_accuracy.result(), step=epoch) # with gen_summary_writer.as_default(): # tf.summary.scalar('loss', gen_losses.result(), step=epoch) disc_losses.reset_states() gen_losses.reset_states() fake_disc_accuracy.reset_states() real_disc_accuracy.reset_states() ####################### # Save the model every 5 epochs # if (epoch + 1) % 5 == 0: # generate_and_save_ecg(generator, epochs, seed, False) # checkpoint.save(file_prefix = checkpoint_prefix) # Generate after the final epoch display.clear_output(wait=True) generate_and_save_ecg(generator, epochs, seed, False)

2023-06-08 上传