全网首创Windows Powershell 批量创建、重命名和拷贝文件夹和文件到指定目录

news2024/11/25 23:00:39

哈喽大家好,欢迎来到虚拟化时代君(XNHCYL)

   大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…(每天更新不间断,福利不见不散)

第一章、小叙

在这个数字化的宇宙中,文件夹和文件就像程序员的“孩子”,我们总是希望他们有一个整齐的家。于是,PowerShell 成为了我们的“数字保姆”,用它的魔法指令来批量创建、重命名和拷贝这些“小家伙”。恰巧总结下最近工作中云桌面的问题,譬如Horizon 虚拟应用中某些应用不支持并发,那我们可以批量脚本创建目录和文件。

第二章、批量创建文件夹

首先我们看到D盘虚拟化时代君的文件夹下面是空的,我们通过Powershell脚本批量创建。创建名字分别为:Xnhsdj-01-Xnhsdj-10。

图片

如下图所示,打开powershellse,输入脚本

图片

运行命令查看效果

图片

脚本如下,自取

# 虚拟化时代君出品# 定义基目录$baseDir = "D:\虚拟化时代君"# 确保基目录存在,如果不存在则创建if (-not (Test-Path -Path $baseDir)) {    New-Item -ItemType Directory -Path $baseDir}# 定义要创建的文件夹数量$startIndex = 1$endIndex = 10# 循环创建文件夹for ($i = $startIndex; $i -le $endIndex; $i++) {    # 格式化文件夹名称,确保序号为两位数字    $folderName = "Xnhsdj-" + "{0:D2}" -f $i    # 拼接基目录和文件夹名称,得到完整的文件夹路径    $folderPath = Join-Path -Path $baseDir -ChildPath $folderName    # 检查文件夹是否已存在,如果不存在则创建    if (-not (Test-Path -Path $folderPath)) {        New-Item -ItemType Directory -Path $folderPath        # 输出创建的文件夹路径        Write-Output "创建文件夹: $folderPath"    } else {        # 如果文件夹已存在,输出提示信息        Write-Output "文件夹已存在: $folderPath"    }}# 输出完成信息Write-Output "文件夹创建过程已成功完成。"

以上脚本亲自测试,如需要更改里面参数自行参考。

第三章、批量修改文件夹名字

我们在文件夹Xnhsdj-01下面创建了N个包含文件的文件夹,我们演示下批量修改文件夹名字。

图片

修改Powershell示例,如图所示

图片

脚本如下,自取

# 虚拟化时代君出品# 定义目标目录$targetDir = "D:\虚拟化时代君\Xnhsdj-01"# 确保目标目录存在if (-not (Test-Path -Path $targetDir)) {    Write-Output "目标目录不存在: $targetDir"    exit}# 获取目录下所有以 "telegram" 开头的文件夹(忽略大小写)$folders = Get-ChildItem -Path $targetDir -Directory | Where-Object { $_.Name -like "telegram*" }# 检查是否找到符合条件的文件夹if ($folders.Count -eq 0) {    Write-Output "没有找到以 'telegram' 开头的文件夹。"    exit}# 初始化文件夹计数器$counter = 1# 循环重命名文件夹foreach ($folder in $folders) {    # 格式化新的文件夹名,确保序号为两位数字    $newFolderName = "Telegram-" + "{0:D2}" -f $counter    # 构造新的文件夹路径    $newFolderPath = Join-Path -Path $targetDir -ChildPath $newFolderName    # 输出调试信息    Write-Output "正在重命名文件夹: $($folder.FullName) -> $newFolderName"    # 重命名文件夹    Rename-Item -Path $folder.FullName -NewName $newFolderName    # 增加计数器    $counter++}Write-Output "文件夹重命名过程已成功完成。"

第四章、批量复制文件到指定目录

我们演示将D:\虚拟化时代君\Xnhsdj-01下的所有文件夹和文件都复制到D:\虚拟化时代君下其他的文件夹下面

图片

正在拷贝 

图片

拷贝完成

图片

脚本如下,自取

# 虚拟化时代君出品# 定义源目录和目标根目录$sourceDir = "D:\虚拟化时代君\Xnhsdj-01"$targetRootDir = "D:\虚拟化时代君"# 确保源目录存在if (-not (Test-Path -Path $sourceDir)) {    Write-Output "源目录不存在: $sourceDir"    exit}# 获取源目录下的所有子目录和文件$items = Get-ChildItem -Path $sourceDir# 定义目标文件夹的名称列表$targetFolders = @("Xnhsdj-02", "Xnhsdj-03", "Xnhsdj-04", "Xnhsdj-05", "Xnhsdj-06", "Xnhsdj-07", "Xnhsdj-08", "Xnhsdj-09")# 循环遍历目标文件夹名称列表foreach ($folderName in $targetFolders) {    # 构造目标文件夹路径    $targetDir = Join-Path -Path $targetRootDir -ChildPath $folderName    # 确保目标文件夹存在,如果不存在则创建    if (-not (Test-Path -Path $targetDir)) {        New-Item -ItemType Directory -Path $targetDir        Write-Output "创建目标文件夹: $targetDir"    }    # 输出当前目标文件夹信息    Write-Output "正在处理目标文件夹: $targetDir"    # 循环遍历源目录下的子目录和文件    foreach ($item in $items) {        # 构造目标路径        $targetItemPath = Join-Path -Path $targetDir -ChildPath $item.Name        # 拷贝子目录和文件到目标文件夹        Copy-Item -Path $item.FullName -Destination $targetItemPath -Recurse -Force        Write-Output "已拷贝: $($item.FullName) -> $targetItemPath"    }}Write-Output "文件夹拷贝过程已成功完成。"

脚本里面自定义值说明提示:

  1. 定义源目录和目标根目录:

    • $sourceDir 变量定义了源目录,即 D:\虚拟化时代君\Xnhsdj-01

    • $targetRootDir 变量定义了目标根目录,即 D:\虚拟化时代君

  2. 确保源目录存在:

    • 使用 Test-Path 检查源目录是否存在,如果不存在则输出提示信息并退出脚本。

  3. 获取源目录下的所有子目录和文件:

    • 使用 Get-ChildItem 获取源目录下的所有子目录和文件。

  4. 定义目标文件夹的名称列表:

    • 使用 $targetFolders 数组定义目标文件夹的名称,即 Xnhsdj-02 到 Xnhsdj-09

  5. 循环遍历目标文件夹名称列表:

    • 使用 foreach 循环遍历目标文件夹名称列表。

    • 使用 Join-Path 构造目标文件夹路径。

    • 使用 Test-Path 检查目标文件夹是否存在,如果不存在则使用 New-Item 创建目标文件夹。

    • 输出当前正在处理的目标文件夹信息。

  6. 循环遍历源目录下的子目录和文件:

    • 使用 foreach 循环遍历获取到的子目录和文件。

    • 使用 Join-Path 构造目标路径。

    • 使用 Copy-Item 递归地将子目录和文件拷贝到目标文件夹,并输出拷贝结果。

第五章、往期回顾

如果您觉得文章不错可以查看以前的文章

全网首发Windows五大高危端口(135/136/137/139和445)安全防护策略

全网首发Windows Server 2019 AD 域控降级与退域的全面指南

Windows无需管理员权限,命令轻松修改IP和DNS

一文秒懂ipconfig、ifconfig和ip addr的区别与应用

从小白到高手:Windows注册表基础运维全攻略

Windows Server AD域控账号CMD批量导入小技巧

Windows安全防护技能抵御勒索病毒入侵威胁

全网首发Windows 系统中常用的巡检命令和 CMD 命令

紧急通告!Windows TCP/IP 远程代码执行高危漏洞(CVE-2024-38063)

解决方案:如何在虚拟机中扩展 Windows 11 C 盘,绕过恢复分区的限制!

Windows隐藏任意exe程序小秘籍

探索Windows秘密:揭晓30个常用端口的神秘面纱与使用技巧

Windows Server 2019 会话远程桌面-快速部署(RemoteApp)

Windows Server 2019 WSUS补丁服务器安装图解教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2202144.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 完整指南:命令与原理详解

目录 1. Redis 概述什么是 RedisRedis 应用场景 2. 安装与启动Redis 安装步骤源代码安装使用包管理器安装(以 Ubuntu 为例) 编译与启动命令编客户端连接 3. Redis 存储结构KV 存储结构数据结构类型String(字符串)List(…

selenium有多个frame页时的操作方法(5)

之前文章我们提到,在webdriver.WebDriver类有一个switch_to方法,通过switch_to.frame()可以切换到不同的frame页然后才再定位某个元素做一些输入/点击等操作。 比如下面这个测试网站有2个frame页:http://www.sahitest.com/demo/framesTest.h…

支付宝开放平台-开发者社区——AI 日报「10 月 10 日」

1 AI逆向绘画火了!一键重绘梵高《星空》,来自华盛顿大学 量子位|阅读原文 这项魔法来自华盛顿大学,项目名为Inverse Painting,相关论文已入选SIGGRAPH Asia 2024,其中两位作者还是东北大学(Bo…

车载SerDes历史和发展概述

1. 场景起源 1.1 原始时代: 在古老的很久很久以前,摄像头和显示屏等接口是多种多样的,丰富多彩的。大家各凭本事,各显神通,在各种地盘上成立各种帮派。比如CVBS、DVP、AHD、USB。 CVBS,包括后面的AHD&a…

【puppeteer】wvp-puppeteer制作 过程

、 制作 docker build -t dxw-pupet4 -f .\dockerfile2 . docker run -itd --name dxw4 -p 35105:35105 dxw-pupet4 推送到私库 docker tag dxw-pupet4:latest dualvenregistry:5000/wvp-puppeteer:v1.0 docker push dualvenregistry:5000/wvp-puppeteer:v1.0 重启桌面上…

2024.10.9 QT事件

1.思维导图 2.一个圆形根据wsad上下左右移动&#xff0c;超出界限则不移动。鼠标点击和双击事件测试。 1.main.cpp #include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);MainWindow w;w.show();re…

JAVA《接口》

文章目录 一、接口是什么&#xff1f;1.1 接口的概念1.2 接口与类的相似点和区别1.3 接口的特性 二、接口的使用2.1 接口的实现2.2 实现多个接口2.3 接口之间的扩展(继承) 三、接口的使用实例3.1 Comparable接口3.2 Comparator接口3.3 Clonable接口3.3.1 使用Clonable接口3.3.2…

Linux——cp-mv-rm命令

cp命令 复制文件 cp test01.txt test02.txt 复制文件夹 cp -r hsy01 hsy02 mv命令 移动文件/文件夹 rm命令 删除文件 rm test.txt 删除文件夹&#xff08;目录 rm -r hsy01 通配符 * 匹配任意内容 注意* 位置 强制删除-f root超级管理员

数字化转型的深度解析:塑造未来企业的关键策略

在当今技术飞速发展的背景下&#xff0c;数字化转型&#xff08;_Digital Transformation_&#xff09;已成为企业保持竞争力的必要手段。随着云计算、物联网&#xff08;IoT&#xff09;、大数据和人工智能等技术的不断成熟&#xff0c;企业通过数字化手段优化业务流程、提升客…

ESXI 的下载 2024 版

ESXI 的下载 前言 最近收到了部分小伙伴的反馈&#xff0c;VMware 的下载官网上 ESXI 自动跳转进入了 BroadCom 的支持页面&#xff0c;难以找到 ESXI 的官方资源&#xff0c;这里我将为大家做出下载的相关指引。 ESXI 下载指引 跳转进入 BroadCom 的支持页面 &#x1f449; …

Python | Leetcode Python题解之第467题环绕字符串中唯一的子字符串

题目&#xff1a; 题解&#xff1a; class Solution:def findSubstringInWraproundString(self, p: str) -> int:dp defaultdict(int)k 0for i, ch in enumerate(p):if i > 0 and (ord(ch) - ord(p[i - 1])) % 26 1: # 字符之差为 1 或 -25k 1else:k 1dp[ch] max…

Web Service Sender ParseError Invalid byte 1 of 1-byte UTF-8 sequence

说明 发送webservice报错 Invalid UTF-8 start byte 0xfc when using Web Service Sender Web Service Sender error ERROR MESSAGE: Error creating web service dispatch com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: javax.xml.stream.XMLStream…

k8s之ingress-nginx-controller安装

作者&#xff1a;程序那点事儿 日期&#xff1a;2024/01/30 01:25 要在master节点上安装 helm repo add ingress-nginx Welcome - Ingress-Nginx Controller helm search repo ingress-nginx helm pull ingress-nginx/ingress-nginx --version 4.4.2 mv ingress-nginx-4.4.…

为Floorp浏览器添加搜索引擎及搜索栏相关设置. 2024-10-08

Floorp浏览器开源项目地址: https://github.com/floorp-Projects/floorp/ 以下内容同样适用于firefox和大部分基于firefox的桌面版浏览器 1.第一步 为Floorp浏览器添加搜索栏 (1.工具栏空白处 次键选择 定制工具栏 (2. 把 搜索框 拖动至工具栏 2.添加搜索引擎 以添加 搜狗搜索…

Ubuntu 18.04安装storcli查看阵列信息

rootCeph03:/opt/MegaRAID/storcli# cat /etc/issue Ubuntu 18.04.5 LTS \n \l 准备好storcli的安装包 解压 解压之后可以看到 根据系统版本选择 把storcli_1.18.11_all.deb包传到服务器 使用命令dpkg -I storcli_1.18.11_all.deb ./storcli64 show ./storcli64 /c1 show …

Acwing 贪心算法遗留

1.Huffman树 Acwing 148.合并果子 实现思路&#xff1a;构建一颗哈夫曼树&#xff0c;求最短带权路径长度&#xff08;树中所有的叶结点的权值乘上其到根结点的路径长度&#xff09; 每次选择重量最小的两堆进行合并使用小根堆存储每一堆果子&#xff0c;每次两次弹出堆顶元…

ML 系列:机器学习和深度学习的深层次总结( 15) — KNN — 第 1 部分

一、说明 K-最近邻 (KNN) 算法是一种流行的监督机器学习算法&#xff0c;用于分类和回归任务。它是非参数惰性学习算法的一个典型例子。KNN 被认为是一种惰性学习算法&#xff0c;因为它在训练阶段不对底层数据分布做出任何假设&#xff0c;也不从训练数据中学习特定模型。相反…

uniapp开发 使用vscode代替hbuilderx开发工具

前言&#xff1a;最近接手了一个uniapp项目&#xff0c;很久没有使用hbuilderx了&#xff0c;用着实在难受&#xff0c;并且还总报奇奇怪怪的错误&#xff0c;首次运行要下载很多插件&#xff0c;搜索文件也用不习惯&#xff0c;加上很多鼠标操作&#xff0c;实在是太影响开发效…

【MATLAB源码-第241期】基于simulink的异步buck降压电路仿真,输出UL IL UR以及PWM波形。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 Buck变换器是一种直流降压转换器&#xff0c;旨在将较高的输入电压转换为较低的输出电压&#xff0c;并广泛应用于各种电源管理系统中。图中的Buck变换器模型通过一系列的电力电子元件和控制信号实现降压功能。 首先&#xf…

QT:“提升为“使用(自定义控件)

目录 一.步骤与作用 1.步骤 2.作用 二.使用 1.mainwindow.ui ->拖一个 Push Button 控件到画布->右击Push Button弹出对话框->单击"提升为" 2.输入提升类名称MyButton->点击添加 3.选择基类名称为QPushButton,点击提升 4.新建MyButton文件 5.在…