PowerShell实现的文件同步脚本分享

#分别定义源、目标文件夹,注意大小写敏感
$folder_a_path = "D:\a"
$folder_b_path = "D:\b"
#遍历源文件夹下所有文件
$folders_a = gci $folder_a_path -Recurse
foreach ($folder_a in $folders_a)
  {
  #通过替换的方式,取目标文件的全路径名称
  $b = $folder_a.fullname.replace($folder_a_path,$folder_b_path)
  #判断目标文件是否存在,如果存在则先判断新旧
  If (test-path $b)
    {
     #判断目标是否为目录,如果是目录则跳过,如果不跳过,则会创建一级空目录
     If (!((gi $b).PSIsContainer))
      {
       #判断目标文件、源文件的新旧情况,如果目标已存在文件的修改时间早于源文件,则重新拷贝覆盖
       If ((gci $b).lastwritetime -lt $folder_a.lastwritetime)
        {
         copy-item $folder_a.fullname $b -force
        }
      }

    }
  #如果目标文件不存在,则直接拷贝
  Else
    {
     copy-item $folder_a.fullname $b
    }

    }
(0)

相关推荐

  • PowerShell实现的文件同步脚本分享

    #分别定义源.目标文件夹,注意大小写敏感 $folder_a_path = "D:\a" $folder_b_path = "D:\b" #遍历源文件夹下所有文件 $folders_a = gci $folder_a_path -Recurse foreach ($folder_a in $folders_a) { #通过替换的方式,取目标文件的全路径名称 $b = $folder_a.fullname.replace($folder_a_path,$folder_

  • shell替换文件中的文件路径脚本分享

    用法参数1.写有需要替换路径记录的文本,格式:老路径 老名称 新路径 新名称参数2.需要替换的文件的目录参数3.需要替换的文件的类型 复制代码 代码如下: #!/bin/sh function _replace(){basepath=$0> $basepath.logi=1while read linedo        echo "start==========================================================================

  • PowerShell实现测试端口可用性脚本分享

    利用简单的TCP套接字来简单判断一个端口是否可用: 复制代码 代码如下: Function Test-PortAvailable {     param(     [validaterange(1,65535)]     [int]$Port     )     $sockt=New-Object System.Net.Sockets.Socket -ArgumentList 'InterNetwork','Stream','TCP'     $ip = (Get-NetIPConfigurat

  • shell脚本实现本地文件与服务器文件同步

    为何创建此脚本是因为方便项目的布署,不需要手动地去同步不同的项目,而只需要简单的执行shell脚本,输入项目名就能发布到服器上. 1.shell文件代码 #!/bin/sh read -t 30 -p "请输入项目名:" name echo -e "\n" echo "项目名为:$name" case $name in cn) rsync -r ~/project1 root@192.168.18.2:/project1 --exclude=&q

  • Windows Powershell 执行文件和脚本

    象运行可执行文件一样,Powershell运行文件和脚本,也必须使用绝对路径或者相对路径,或者要运行的文件必须定义在可受信任的环境变量中. 关于脚本 脚本和批处理都属于伪可执行文件,它们只是包含了若干命令行解释器能够解释和执行的命令行代码. 执行批处理文件 批处理是扩展名为".bat"的文本文件,它可以包含任何cmd控制台能够处理的命令.当批处理文件被打开,Cmd控制台会逐行执行每条命令.那Powershell能够直接执行批处理吗? 将下列命令保存为ping.bat @echo off

  • Centos rsync文件同步配置步骤分享

    rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了--remote sync 它的特性如下: 可以镜像保存整个目录树和文件系统. 可以很容易做到保持原来文件的权限.时间.软硬链接等等. 无须特殊权限即可安装. 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件.rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽. 安全:可以使用scp.ssh等方式来传输文件,当然也可以通过直接的socket连接. 支持匿名传输,以方

  • RSync实现文件同步备份配置详解

    一.什么是rsync rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息. rsync是用 "rsync 算法"提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件. rsync 包括如下的一些特性: 能更新整个目录和树和文件系统: 有选择性的保持符号链链.硬链接.文件属于.权限.设备以及时间等:

  • BAT批处理一键生成APK包脚本分享

    BAT批处理一键生成APK包脚本分享 将本bat放到cocos2dx目录下你的工程的project.android下(需修改变量). ASmaker 用来将Resources文件夹下的lua文件批量加密 算法参考我之前的rc4算法实现. 每次打包apk前 svn 最新的工程代码 和 cocos2dx引擎代码. @echo off rem 工具路径 set JAVA_HOME = "C:\Program Files\Java\jdk1.8.0_05" set ANT_HOME = &qu

  • 如何使用七牛Python SDK写一个同步脚本及使用教程

    七牛云存储的 Python 语言版本 SDK(本文以下称 Python-SDK)是对七牛云存储API协议的一层封装,以提供一套对于 Python 开发者而言简单易用的开发工具.Python 开发者在对接 Python-SDK 时无需理解七牛云存储 API 协议的细节,原则上也不需要对 HTTP 协议和原理做非常深入的了解,但如果拥有基础的 HTTP 知识,对于出错场景的处理可以更加高效. 最近刚搭了个markdown静态博客,想把图片放到云存储中. 经过调研觉得七牛可以满足我个人的需求,就选它了

  • python实现的文件同步服务器实例

    本文实例讲述了python实现的文件同步服务器.分享给大家供大家参考.具体实现方法如下: 服务端使用asyncore, 收到文件后保存到本地. 客户端使用pyinotify监视目录的变化 ,把变动的文件发送到服务端. 重点: 1. 使用structs打包发送文件的信息,服务端收到后,根据文件信息来接收客户端传送过来的文件. 2. 客户端使用多线程,pyinotify监视到文件变化,放到队列中,由另外一个线程发送. 上代码: 服务端: # receive file from client and

随机推荐