将不同编码的电影移动到具有原始电影标题的公共文件夹

2024-01-08

所以我遇到这样的情况... 我的文件夹中有很多文件,如下所示

Iron.Man.2008.1440p.UHD.US.BluRay.x265.HDR.DD5.1-Pahe.in
Iron Man 2008.720p.BrRip.x264.YIFY
Iron.Man.2008.US.RERiP.720p.UHD.BluRay.x264-Pahe.in
Iron.Man.2008.Open.Matte.720p.WEB-HD.x264-Pahe.in
Iron.Man.2008.US.RERiP.1080p.UHD.BluRay.x264.DD5.1-Pahe.in
The.Incredible.Hulk.2008.REMASTERED.1080p.BluRay.x264.DD5.1-Pahe.in
The.Incredible.Hulk.2008.REMASTERED.720p.BluRay.x264-Pahe.in
The.Avengers.2012.2160p.10bit.HDR.BluRay.8CH.x265.HEVC-PSA
The.Avengers.2012.1080p.10bit.BrRip.6CH.x265.HEVC-PSA
The.Avengers.2012.720p.10bit.BrRip.6CH.x265.HEVC-PSA

所以我有多个相同的电影 - 但编码器不同且质量不同。

我想要实现的目标是将所有这些不同的编码移动到一个通用文件夹,其中原始电影名称为标题

例如

Iron.Man.2008
  Iron.Man.2008.1440p.UHD.US.BluRay.x265.HDR.DD5.1-Pahe.in
  Iron Man 2008.720p.BrRip.x264.YIFY
  Iron.Man.2008.US.RERiP.720p.UHD.BluRay.x264-Pahe.in
  Iron.Man.2008.Open.Matte.720p.WEB-HD.x264-Pahe.in
  Iron.Man.2008.US.RERiP.1080p.UHD.BluRay.x264.DD5.1-Pahe.in
The.Incredible.Hulk.2008
  The.Incredible.Hulk.2008.REMASTERED.1080p.BluRay.x264.DD5.1-Pahe.in
  The.Incredible.Hulk.2008.REMASTERED.720p.BluRay.x264-Pahe.in
The.Avengers.2012
  The.Avengers.2012.2160p.10bit.HDR.BluRay.8CH.x265.HEVC-PSA
  The.Avengers.2012.1080p.10bit.BrRip.6CH.x265.HEVC-PSA
  The.Avengers.2012.720p.10bit.BrRip.6CH.x265.HEVC-PSA

我曾尝试将其作为bat文件运行..它创建了文件夹,但它根据原始文件名移动文件..每个编码都被移动到它们自己的特定文件夹中

@echo off
for %%a in (*.*) do (
md "%%~na" 2>nul
move "%%a" "%%~na"
)
pause

我愿意接受 Windows 或 Linux 中的任何解决方案

谢谢


既然你也标记了这个PowerShell,这是一个解决方案:

$sourceFolder = 'D:\Test'          # where the files are now
$destination  = 'D:\Movies'        # where the subfolders storing the files should be created

$regex = '^(\D+[.\s]\d{4})\..*'    # see explanation below
(Get-ChildItem -Path 'D:\Test' -File | Where-Object { $_.BaseName -match $regex }) | 
    ForEach-Object {
        $subFolder = ([regex]$regex).Match($_.BaseName).Groups[1].Value -replace '\s', '.'
        $targetDir = Join-Path -Path $destination -ChildPath $subFolder
        # create the subfolder if it does not yet exist
        if (!(Test-Path -Path $targetDir -PathType Container)) {
            $null = New-Item -Path $targetDir -ItemType Directory
        }
        $_ | Copy-Item -Destination $targetDir
    }

正则表达式详细信息:



^           # Assert position at the beginning of a line (at beginning of the string or after a line break character)
(           # Match the regular expression below and capture its match into backreference number 1
   \D       # Match a single character that is not a digit 0..9
      +     # Between one and unlimited times, as many times as possible, giving back as needed (greedy)
   [.\s]    # Match a single character present in the list below
            # The character “.”
            # A whitespace character (spaces, tabs, line breaks, etc.)
   \d       # Match a single digit 0..9
      {4}   # Exactly 4 times
)
\.          # Match the character “.” literally
.           # Match any single character that is not a line break character
   *        # Between zero and unlimited times, as many times as possible, giving back as needed (greedy)
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将不同编码的电影移动到具有原始电影标题的公共文件夹 的相关文章

  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • 在 scp 的简单函数包装中使用波形符 ~ 时出现问题

    我想放置一个简单的bash功能在我的 bashrc围绕着scp通过接受 源 参数和 目标 参数来命令 到目前为止已经尝试过 function send eval scp 1 user annoyingly long server name
  • 将 stdout 复制到 stderr

    我希望在 bash 下也将命令的标准输出复制到标准错误 就像是 echo FooBar FooBar FooBar 其中 是重定向表达式 那可能吗 将 tee 与 dev stderr 一起使用 echo FooBar tee dev st
  • 如何转义单引号字符串中的单引号

    比方说 你有一个 Bashalias like alias rxvt urxvt 效果很好 However alias rxvt urxvt fg 111111 bg 111111 不会起作用 也不会 alias rxvt urxvt fg
  • bash:使用 scp 检查远程文件是否存在

    我正在编写一个 bash 脚本来将文件从远程服务器复制到本地计算机 我需要检查该文件是否可用 以便在该文件不存在时可以采取替代操作 我知道如何测试本地文件是否存在 但是 使用 scp 会使事情变得有点复杂 常识告诉我 一种方法是无论如何尝试
  • 通过 SSH 启动长时间运行的程序 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个运行 Ubuntu 的虚拟机 并且我可以通过 SSH 很好地连接到该虚拟机 我什至可以使用以下命令通过 SSH 启动我的 pyth
  • VSCode 集成终端不加载 .bashrc 或 .bash_profile

    我有以下文件来处理 shell 配置 bash profile if f bashrc then source bashrc fi and bashrc configure shell 如果我使用以下命令从命令行打开 VSCodecode
  • 为什么 sed 不将 \t 识别为制表符?

    sed s t 1 filename gt sedTmpFile mv sedTmpFile filename 我期待这个sed脚本插入一个tab在每一行前面 filename然而事实并非如此 由于某种原因 它正在插入一个t反而 Not a
  • 错误:分配关联数组时必须使用下标

    我想要 bash 中的哈希图等效项 键为string和价值观作为list的整数 所以 我写了下面的代码 declare A PUBS PUBS FEE 345 342 FOO 1 2 44 BAR 23 67 但是 我收到一条错误消息mus
  • bash 中的 SIGINT 和进程替换

    我发现如果我有类似的东西 usr bin env bash function abort politely echo Aborting politely sleep 5 touch stop trap abort politely SIGI
  • 为什么我不能将 Unix Nohup 与 Bash For 循环一起使用?

    例如 此行失败 nohup for i in mydir fasta do myscript sh i done gt output txt bash syntax error near unexpected token do 正确的做法是
  • 当存储在变量中时,Git 提交消息变得混乱[重复]

    这个问题在这里已经有答案了 我有一个 Git 提交 其中有一个摘要 然后是一些描述 所以当我看到提交消息时git log format B n 1
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • 如何从 tcl 脚本调用 bash 命令?

    Bash 命令可从交互式 tclsh 会话中获得 例如 在 tclsh 会话中 您可以 ls 代替 exec ls 但是 您不能有一个直接调用 bash 命令的 tcl 脚本 或者没有exec 如何使 tclsh 在解释 tcl 脚本文件时
  • 在詹金斯管道作业中将变量传递给bash脚本

    我有一个 Jenkins 管道作业 其中我使用名为 setup sh 的 bash 脚本配置我的环境 如下所示 bin bash export ARCH 1 echo architecture ARCH 在 Jenkins 管道脚本中 我使
  • awk 在Linux终端中输出类似表格或类似Excel的列?

    我做了一个长管子 最后是 awk print 5 t t 3 t 4 在 Linux 终端中 这些列用选项卡填充 第一列条目具有不同数量的字符 因此第二列结果并不完全垂直 怎样才能让桌子看起来更完美呢 尝试将结果通过管道传输到列 t awk
  • python中的多服务器监控/自动重启

    我有 2 个服务器程序 必须使用 GNU Screen 启动 我想使用基于 Python 的程序来强化这些服务器 防止崩溃 该程序启动每个屏幕会话 然后监视服务器进程 如果服务器进程崩溃 我需要 python 代码来终止无关的屏幕会话并再次
  • shell脚本响应按键

    我有一个 shell 脚本 本质上是这样的 while true do read r input if input a then echo hello world fi done 这一切都很好 但我刚刚意识到在这种情况下必须按 ENTER
  • Bash IF:多个条件

    我已经尝试让这件事工作几个小时 但我无法让它工作 if P SFTP a PORT 22 P FTPS PORT 990 a PORT 21 then 有人能帮我吗 我知道多个条件可以这样写 if P SFTP PORT 22 then 但
  • 为什么 sed 将替换文本放在行首?

    在 Mac OS X bash 上 我在命令行中使用以下 sed sed s S 1 file1 txt gt file2 txt file1 txt有这样的行 some path to somewhere some stuff here

随机推荐

  • Flutter:多个小部件使用相同的 GlobalKey

    当我运行此代码时 我收到错误 Multiple widgets used the same GlobalKey 所以我可以解决这个问题 如何将密钥动态传递给 listview Builder 可以通过吗 这是我的代码的简化版本 Global
  • PHP:运行计划作业(cron 作业)

    我的网络酒店上有一个网站 我想在其上运行一些计划任务 您会推荐哪些方法来实现这一目标 到目前为止 我想到的是在每个页面的顶部包含一个脚本 然后让该脚本检查是否该运行该作业 这只是我正在思考的一个简单例子 if alreadyDone 0 t
  • 用清漆+正则表达式替换页面中的内容

    如果我希望我的清漆缓存服务器在提供或存储页面 vcl fetch 之前从后端替换页面内的内容 即 更改 div 上的类 该怎么做 我想使用简单的正则表达式来执行替换 因为我想象清漆本身就支持它 Varnish 本身不支持修改响应正文 为此
  • 为什么我们的查询会卡在 MySql 中的“Writing to net”状态?

    我们有很多疑问 select from tbl message 卡在 正在写入网络 状态 该表有 98k 行 问题是 我们甚至没有从我们的应用程序中执行任何类似的查询 所以我想问题是 什么可能会生成查询 以及为什么它会陷入状态 写入网络 我
  • 使用 JavaScript 禁用 iPhone 中的“Go”按钮

    我正在为 iPhone 创建一个小表单 并在该表单上进行 JavaScript 验证 当然由服务器验证支持 但这不是重点 作为此验证的结果 我动态启用 禁用提交按钮 除了屏幕键盘上的 Go 按钮不反映我拥有的唯一提交按钮的状态并且始终处于启
  • std::map 在炼金术中损坏了?

    以下代码测试以 std string 作为键的 std map 的使用 include
  • VS 2017命令行错误D8004

    我别无选择 我正在尝试在 Visual Studio 2017 Community 上使用 GoogleTest 但它给了我很多 警告 C4996 std tr1 警告 STL4002 非标准 std tr1 命名空间和仅 TR1 的机器已
  • Ruby 和 Rails Github 操作退出代码 16

    我正在尝试为新的 Rails 项目设置一个带有 Github 操作的持续集成工作流程 这是错误 2022 05 21T17 07 01 1242737Z Your bundle only supports platforms x86 64
  • 使用SIMD右移32位压缩负数

    我正在编写一些 SSE AVX 代码 并且有一个任务将打包的有符号 32 位整数除以 2 的补码 当值为正时 这种移位工作正常 但由于移位符号位 它会产生负值的错误结果 是否有任何 SIMD 操作可以让我进行移位并保留符号位的位置 谢谢 S
  • Android:SlidingDrawer在SurfaceView下消失

    我正在尝试在 FrameLayout 上创建一个包含 LinearLayout 内容的 SlidingDrawer 起初一切似乎都很好 我在屏幕底部找到了 SlidingDrawer 的句柄 但是 如果我开始向上拖动手柄并且内容开始显示 它
  • MacOS 虚拟输入设备

    如何在代码中创建虚拟 HID 设备 我试图避免编写内核扩展来完成此任务 但这似乎是唯一的方法 我需要能够创建所有类型的虚拟 HID 设备 并让一个应用程序在后台运行以向其提供事件 有没有办法在用户空间中做到这一点 或者我必须冒险进入内核空间
  • T-SQL、XQuery 无效列

    我正在学习 XQUERY 并试图完成我认为非常简单的事情 这是我的 T SQL 代码 DECLARE XML xml set xml
  • VueJS 在渲染数据之前等待 Apollo

    另一篇文章中的简单示例 new Vue el app data filters id issuedBy issuedTo items id 1234 issuedBy Operator issuedTo abcd efgh id 5678
  • 将 CSV 文件中的数据存储到数据库中

    我有一个旅馆的 Django 模型 其中包含 FileUpload 字段之一 我将从该字段获取 CSV 文件并填充数据库 过去两天我一直在尝试搜索如何做到这一点 但无法正常工作 这如何将csv数据导入django模型 https stack
  • Twitter Bootstrap 3 - 如何用定制图标正确替换 glypiccons?

    这是我的 HTML ul class nav nav pills nav stacked custom nav pills li a href span class glyphicon glyphicon home span Home a
  • Python 列表在类实例初始化时应该为空,但事实并非如此。为什么? [复制]

    这个问题在这里已经有答案了 我想创建一个类的实例 其中包含默认为空的列表 我不想稍后将此列表设置为最终的完整列表 而是想连续向其中添加项目 这是一段示例代码来说明这一点 usr bin python class test def init
  • CATransaction 未观察到 CALayer 子类上的属性

    我有一个子类CALayer具有自定义属性 声明如下 interface MyLayer CALayer property nonatomic retain NSNumber customValue end implementation My
  • 将 SQL 数据库 (mdf) 迁移到 SQL Compact Edition (sdf) 的方法

    我有 4 个 SQL Server 2005 数据库 我想将其迁移到 SQL CE 我知道我无法保留 SPocs 视图和函数 SQL Server Compact 和 SQL Server 之间的差异 http msdn microsoft
  • RIA 服务中的 Silverlight 共享类导致构建错误 - 类型“X”已包含“Y”的定义

    我有一个 Silverlight 4 应用程序 我正在其中使用共享类 在 Web项目中 我有一个名为 X Shared cs 的类 该类具有三个字符串属性 当我构建应用程序时 它给出一个错误 提示 类型 X 已经包含 Y 的定义 Silve
  • 将不同编码的电影移动到具有原始电影标题的公共文件夹

    所以我遇到这样的情况 我的文件夹中有很多文件 如下所示 Iron Man 2008 1440p UHD US BluRay x265 HDR DD5 1 Pahe in Iron Man 2008 720p BrRip x264 YIFY