分割路径并仅取出最后一部分(文件名)Powershell

2023-12-12

我对 powershell 非常陌生,我目前正在尝试编写一个脚本,该脚本在文件中查找引用的文件路径,仅取出路径的最后一部分(文件名)并将其移动到与包含它的文件夹相同的目的地。

我有一个功能脚本可以执行我想要的操作,唯一剩下的就是它不应该查找引用文件的整个路径。 因为路径不再正确了。 它应该只查找文件名并找到并移动它。

这是我当前的脚本:

    $source      = 'Z:\Documents\16_Med._App\Aufträge\RuheEKG_24HBP_Skript\Ursprung_test'
$destination = 'Z:\Documents\16_Med._App\Aufträge\RuheEKG_24HBP_Skript\24BHD'
$toDelete    = 'Z:\Documents\16_Med._App\Aufträge\RuheEKG_24HBP_Skript\ToDelete'
$pattern1    = 'AmbulatoryBloodPressure'
$pattern2    = 'RuheEKG'


# Erstellt Array mit pfad und filename
$allFiles = @(Get-ChildItem $source -File | Select-Object -ExpandProperty FullName)

foreach($file in $allFiles) {
    # Dateinhalt als Array
    $content = Get-Content -Path $file

    # Wählt Destinationspfad
        if ($content | Select-String -Pattern $pattern1 -SimpleMatch -Quiet)  
         {
        $dest = $destination
    }
    else {
        $dest = $toDelete
    }

    # Prüft ob Datei einen Pfad enthält
    $refCount = 0
    $content | Select-String -Pattern '(^.*)([A-Z]:\\.+$)' -AllMatches | ForEach-Object {


        $prefix  = $_.Matches[0].Groups[1].Value   
        $refPath = $_.Matches[0].Groups[2].Value   # Bitmap file Path wird geholt

        if (Test-Path -Path $refPath -PathType Leaf) {
            Write-Host "Moving referenced file '$refPath' to '$dest'"
            Move-Item -Path $refPath -Destination $dest -Force


        }
        else {
            Write-Warning "Referenced file '$refPath' not found"
        }
    }
    $refPath -split "\"
       $refPath[4]
    write-host $refpath

    # Bewegt die Files an die vorher festgelegte Destination.
    Write-Host "Moving file '$file' to '$dest'"
    Move-Item -Path $file -Destination $dest -Force
}

This is the referenced bitmap file: enter image description here


您有多种选择savely在 PowerShell 中使用文件路径和名称。

内置 cmdlet

# Get the file name
$fileName = Split-Path $refPath -Leaf

# Get the directory path
$dirPath = Split-Path $refPath -Parent

.NET 方法

# Get the file name
$fileName = [System.IO.Path]::GetFileName($refPath)

# Get the directory path
$dirPath = [System.IO.Path]::GetDirectoryName($refPath)

如果你想在另一个目录中查找文件名,你可以像这样建立一个新路径:

# built-in version
$otherPath = Join-Path $otherDir $fileName

# .NET version
$otherPath = [System.IO.Path]::Combine($otherDir, $fileName)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分割路径并仅取出最后一部分(文件名)Powershell 的相关文章

  • Windows / Powershell 将程序版本获取到变量中

    我很接近 但不在那儿 我可以通过 powershell 获取应用程序的版本 但它附带一堆文本 这个命令 powershell NoLogo NoProfile Command get item Path c myapp exe Versio
  • 如何在 JavaScript 中进行字符串插值?

    考虑这段代码 var age 3 console log I m age years old 除了字符串连接之外 还有其他方法可以将变量的值插入到字符串中吗 从 ES6 开始 你可以使用模板文字 https developer mozill
  • 从一个方法返回两个变量

    下面的代码如何正确书写 public String toString int position int xOffset int yOffset String postn String format d d position 0 positi
  • sprintf 与 String.Format 的性能[重复]

    这个问题在这里已经有答案了 我正在比较 sprintf 用法的性能 并对我所看到的感到有点困扰 我测试了以下 4 个方法 将 ClassWithToString 的实例传递给每个方法 PrintInt 除外 它接收实际的整数值 type C
  • Tesseract 无法读取这个极其简单的数字串

    我目前正在用 python 编写一个脚本 需要使用 tesseract 来读取如下数字 仅使用数字和 psm 6 或 7 它输出 5 551 我在其他数字上取得了一些成功 5 700 有效 但这个特定的数字给我带来了很多问题 不幸的是 我的
  • java为oracle VARCHAR2返回空字符串值

    我有以下代码 它似乎工作正常 但它不显示 personCode 字符串的任何值 PERSON CODE 是 Oracle 9i 数据库中的 VARCHAR2 我在我的项目中使用 Java SE 1 7 和 ojdbc7 jar 我是 Jav
  • 是否可以通过用户租户上的 ARM 模板在 Azure 上自动注册应用程序?

    我正在尝试通过 ARM 模板将解决方案部署为托管应用程序 为了使部署正常工作 我需要注册应用程序的客户端 ID 和客户端密钥以及租户 ID 在我之前的范围中 我假设用户将注册一个现有的应用程序 但现在我想为用户自动化应用程序注册过程 并能够
  • 如何使用 TFS PowerShell 获取变更集和关联工作项的列表?

    我是 PowerShell 和 TFS cmdlet 的新手 我正在尝试检索区域路径中的变更集列表及其关联的工作项 我已经列出了自特定日期以来的变更集 Get TfsItemHistory Project Branch Version D0
  • Azure 自动化 Powershell Runbook 无法进行 LoadAssembly

    我是 Powershell Runbook 的新手 所以如果我遗漏了一些明显的内容 请原谅我 我正在尝试从我的脚本记录 Application Insights 请求 但甚至无法加载 DLL 尽管我已经看到其他代码执行非常类似的操作 请注意
  • 修改字符数组,修改部分向后显示

    我刚刚开始学习汇编 我正在尝试修改字符数组 这是我的汇编代码 data data byte Five 0 code Asm proc lea rax data mov dword ptr rax Four ret Asm endp end
  • 元组/数组列表对

    我本质上是想创建一个配对列表 事实证明这是非常困难的 请注意 在任何人提到哈希表之前 都会有我不关心的重复项 例如 如果我这样做 b dog cat I get Name Value dog cat 这很好 但是 我无法添加类似的内容 b
  • 如何在 C# 中从字符串调用委托?

    是否可以通过变量名称 作为字符串 调用存储在变量中的委托 我想我必须使用反射机制 但我没有得到任何结果 示例代码 class Demo public delegate int DemoDelegate private static int
  • 在C#中使用字符串调用变量

    我试图使用循环来编辑多个文本框的数据 但我无法弄清楚如何转换内容是我的框名称的字符串来访问每个框的文本元素 private void reset Click object sender EventArgs e string cell for
  • 没有 DateAdd() 的 SSIS 表达式前一个日期

    目前正在开发一个包 它将表达式从先前的日期传递到文件名 我当前的代码如下作为字符串变量 DT WSTR 20 DATEPART YYYY Dateadd DD 1 dateadd MM datediff MM DT DATE 1900 01
  • 如何使用正则表达式选择字符串中每个单词的第一个字母

    我试图使用正则表达式选择字符串中每个单词的第一个字母 但遇到了问题 我能够使用选择第一个单词的第一个字母 w igm 我如何修改它以选择字符串中每个单词的第一个字母 举个例子 我有字符串 我喜欢狗 我想要代码选择 I L 和 D Use a
  • Java 字符串哈希码缓存

    字符串不变性的优点之一是哈希码缓存以实现更快的访问 在这种情况下 如何处理具有相同哈希码的字符串的缓存 在这种情况下它真的能提高性能吗 在这种情况下 如何处理具有相同哈希码的字符串的缓存 被缓存的是字符串的哈希码 它被缓存在私有的int字符
  • 将字符串列表转换为字典

    我有一个清单 Tests run 1 Failures 0 Errors 0 我想将其转换为字典 Tests run 1 Failures 0 Errors 0 我该怎么做 Use a Tests run 1 Failures 0 Erro
  • $.parseJSON() 在有效对象上返回 null

    jsfiddle 链接 http jsfiddle net YmUmp 1 var x Item1 1 Item2 Item3 3 alert JSON stringify x undefined 2 alert parseJSON x 第
  • Python 按照层次结构按多个分隔符分割字符串

    我只想根据多个分隔符 例如 and 和 按顺序分割字符串一次 例子 121 34 adsfd gt 121 34 adsfd dsfsd and adfd gt dsfsd adfd dsfsd adfd gt dsfsd adfd dsf
  • Matlab中反转一位逻辑位

    是否存在更好的方法来反转 X 的元素 gt gt X dec2bin 10 X 1010 我这样做了 x i num2str 1 str2num x i 如果我理解正确的话 你想将一位设置为 1 使用bitset bitset x bitN

随机推荐

  • 按键表达式存储静态过滤器

    我有一个函数 当传入一个时 它会生成一个表达式来通过主键过滤表Object 这非常类似于Find函数 只是它没有实现 所以你可以传递一个IQueryable之后周围 public static Expression
  • 使用标头过滤代理响应标头

    我有一个上游服务器 它经常通过返回 Set Cookie 响应标头来设置 Cookie 我想在上游服务器前面有一个 nginx 代理 Browser gt Nginx gt Upstream If the Browser gt Nginx请
  • 引用如何绑定到纯右值?

    cppreference 说 当引用绑定到纯右值时 会创建一个临时对象 它们是指 const 左值引用和右值引用吗 当纯右值具体化时 会创建临时对象 以便将其用作左值 这会在以下情况下发生 C 17 起 将引用绑定到纯右值 如果他们的意思是
  • 使部分(但不是全部)(CUDA) 内存访问不被缓存

    我只是注意到 CUDA 内核 内存访问完全有可能不被缓存 参见例如这个答案在这里 这可以吗 对于单个内核 在运行时而不是在编译时 仅用于写入而不是读取和写入 仅当您单独编译该内核时 因为这是通过代码生成启用的指令级功能 您还可以使用内联 P
  • Python3使用字典替换

    谁能解释一下这里出了什么问题 def get complementary sequence string dic A T C G T A G C for a b in dic items string string replace a b
  • 如何读取 log4j 输出到网页?

    我有一个网页 用于管理目的 它运行一个任务 从远程站点获取图像 为了能够仅使用浏览器而不是 ssh 等来调试任务 我希望能够读取执行线程的所有日志输出并将其吐出到网页 任务归结为 在调用开始时更改当前线程的日志级别 并在调用完成时恢复 读取
  • Hibernate 遇到 mysql := 运算符时出现异常

    当我执行以下代码时 出现异常 Exception org springframework orm hibernate3 HibernateQueryException Not all named parameters have been s
  • 如何在文本框中显示字符串数组

    您好 我是 C 新手 我的第一个 Windows 窗体应用程序遇到问题 我有来自串行端口的数据 并找到了一种处理数据并将其存储到 3 个不同字符串数组中的方法 我无法解决的是如何将数组中的数据显示到它们自己的单独文本框中 我只想显示当前索引
  • 使用实体框架(.edmx 模型)和 Razor 视图创建 MVC3 下拉列表&& 将数据库记录插入多个表

    在阅读了 100 篇有关如何使用 Razor 视图在 MVC 3 中创建下拉列表的文章后 我找不到适合我的情况的文章 情况 我最终试图创建一个视图来将员工添加到数据库中 这是我正在使用的 EDMX 模型的图像 create 将使用的表 目标
  • 如何在多行上打印数组列表?

    我正在学习 MOOC java 课程 并且我被困在练习 76 上 每当我提交答案时 它都会告诉我将每顿饭打印到单独的行 我该怎么做呢 主班 public class Main public static void main String a
  • 是否可以将请求标头添加到 iframe src 请求中?

    据我所知 在 JavaScript 中进行 AJAX 调用时 您可以非常轻松地设置 HTTP 请求标头 但是 通过脚本将 iframe 插入页面时是否也可以设置自定义 HTTP 请求标头 您可以在 JavaScript 中发出请求 设置您想
  • Java InetSocketAddress 类似于 .toString()?

    我正在 InetSocketAddress 上执行 toString 这是 Android websocket 客户端的一部分 迄今为止无法连接到主机 现在变量 address toString 的输出看起来像domain com 72 x
  • 在 POI 中添加带有 quotePrefix 的单元格

    我想在 xlsx 工作簿工作表中添加一个包含引号前缀的单元格 并且我正在尝试使用 POI 库创建该工作表 如何添加这种类型的单元格 我在 Maven Central 上找到了 CTXf setQuotePrefix boolean quot
  • php中匿名接口的实现

    在Java中我们可以这样做 interface Inter public void run class Test public Test Inter inter inter run new Test new Inter Override p
  • Clang 的 LTO 能否跨 C 和 C++ 方法进行优化 [重复]

    这个问题在这里已经有答案了 如果链接时优化 LTO 与clang 代码是否可以跨 C 和 C 语言边界进行优化 例如 C 函数可以内联到 C 调用程序中 反之亦然吗 AFAIK 是的 因为 Clang 生成 LLVM 中间表示 并且 LTO
  • Json.NET 根据属性类型设置属性为必填项

    我正在努力处理 Net core 中的自定义 json 序列化 我试图默认设置所需的所有属性 除非属性具有特定类型 这是我想要实现的目标的示例 假设我有以下类型 F type FooType id int name string optio
  • GAE 在 Java、Eclipse Indigo 中入门 - 无法编译为 1.6

    我觉得我一直在绕着这个转圈圈 我遵循了 Google App Engine 入门指南 https developers google com appengine docs java gettingstarted 在 Eclipse 中 一切
  • MySQL |您无法在 FROM 子句中指定要更新的目标表“a”

    DELETE FROM table a WHERE id IN SELECT table a id AS id FROM table a table b WHERE table a object id 1 AND table a code
  • 将组数据填充到 Highcharts 上的特定系列

    尝试将两列分组并将其填充为高图表上的特定系列 我的代码没有对列进行分组 并将所有数据显示为单个系列 query db gt Prepare SELECT class SUM marks DATE date column as dates F
  • 分割路径并仅取出最后一部分(文件名)Powershell

    我对 powershell 非常陌生 我目前正在尝试编写一个脚本 该脚本在文件中查找引用的文件路径 仅取出路径的最后一部分 文件名 并将其移动到与包含它的文件夹相同的目的地 我有一个功能脚本可以执行我想要的操作 唯一剩下的就是它不应该查找引