首页云计算 正文

使用PowerShell及Shell实现将子目录中的所有指定类型文件批量复制到其他目录

2024-11-19 5 0条评论
  1. 首页
  2. 证书相关
  3. 使用PowerShell及Shell实现将子目录中的所有指定类型文件批量复制到其他目录

使用PowerShell及Shell实现将子目录中的所有指定类型文件批量复制到其他目录

发布日期:2017-10-25

最近有个小需求,需要在 windows 系统下,把 mobi 格式的电子书文件从不同子目录里拷贝到同一目录中,由于微软的 Bash for windows 还没出正式版,所以这里先用 PowerShell 解决。

首先用 Dir 命令遍历所有子目录获取 mobi 文件:

$data = Dir C:\data -filter *.mobi -recurse

-recurse 参数会递归地遍历 C:\data 下的子目录,寻找 -filter 所定义的所有以 mobi 为后缀的文件,将结果存入变量 data 中。

随后用 Foreach-Object 循环遍历 data 变量,执行复制文件的操作:

1 2 3 4 $data | Foreach-Object{ echo $_.Name Copy-Item $_.FullName D:\result }

为了使这个脚本具有通用性,将上文几个路径及后缀定义为用户可以输入的参数,最后脚本如下:

1 2 3 4 5 6 param( $From, $To, $Suffix) $data = Dir $From -filter *. $Suffix -recurse $data | Foreach-Object{ echo $_.Name Copy-Item $_.FullName $To }

保存为 auto-copy.ps1 文件后,执行的时候会遇到些麻烦。如果在 Linux 下,我们一般 chmod +x 然后 ./*.sh 即可,但是由于 PowerShell 出于安全考虑默认禁止直接运行脚本,所以直接运行 ./auto-copy.ps1 会报类似 cannot be loaded because running scripts is disabled on this system 这样的错误。解决的方法有两个,一种是修改 Set-ExecutionPolicy 为 RemoteSigned、AllSigned、Unrestricted 中的一个(各个策略的含义参考 https://technet.microsoft.com/en-us/library/ee176961.aspx ),但是会存在潜在的安全问题。另一种是以 powershell -ExecutionPolicy ByPass -File ‘.\auto-copy.ps1’ 这样的形式执行脚本。在这里我们选择后者,执行以下命令即可:

powershell -ExecutionPolicy ByPass -File '.\auto-copy.ps1' -From C:\data -To D:\result -Suffix mobi

举一反三,下面这个脚本在 Linux 下使用 Shell 实现相同的功能:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #! /bin/bash from= to= suffix= while getopts “f:t:s:” option do case $option in f) from= $OPTARG ;; t) to= $OPTARG ;; s) suffix= $OPTARG ;; \?) echo “Invalid option: –$OPTARG >&2 ;; esac done data=($(find $from -name *. $suffix)) for item in ${data[@]} do echo $item cp $item $to done

和 PowerShell 的实现差不多,主要区别在于传参的处理上。


数安时代(GDCA)致力于网络信息安全,已通过WebTrust 的国际认证,是全球可信任的证书签发机构。GDCA专业技术团队将根据用户具体情况为其提供最优的产品选择建议,并针对不同的应用或服务器要求提供专业对应的HTTPS解决方案。GDCA一直以“构建网络信任体系,服务现代数字生活”的宗旨,致力于提供全球化的数字证书认证服务。其自主品牌——信鉴易 TrustAUTH  SSL证书:包括 OVSSL、EVSSL、代码签名证书等。为涉足互联网的企业打造更安全的生态环境,建立更具公信力的企业网站形象。10

上一篇:使用 Shell Script 将程序添加到 Linux Service 并设置为开机启动

下一篇:如何申请多域名SSL证书

相关新闻

  • SSL证书对网站访问速度有影响吗
  • 个人隐私数据泄露有哪些危害?如何预防?
  • 部署SSL证书有哪些常见的错误
  • 国际证书、国产证书和国密证书
  • 游戏开发为什么离不开代码签名?
  • 僵尸网络攻击手法与防范方式
  • SSL证书助力保障网络数据安全
  • 网站加密与不加密区别
  • SSL证书有哪些类型和价格差异
  • ca机构颁发的证书包括那些内容呢?
文章版权及转载声明

本文作者:admin 网址:http://news.edns.com/post/113730.html 发布于 2024-11-19
文章转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码