Powershell - 如何在移动文件后重命名文件?

史蒂夫·韦弗

我目前正在处理一个需要移动文件然后重命名的项目。我正在使用此代码来移动它,并且正在运行。但是,重命名部分并未按预期进行。我无法弄清楚为什么这不起作用。我搞砸了什么?我已经用头撞在桌子上至少 20 分钟试图弄清楚这一点。

# Variables for Watcher
$folder = "C:\Program Files\Whatever\Connector\Export\JobStatus"
$filter = '*.txt'
$date=(get-date -Format d) -replace("/")
$time=(get-date -Format t) -replace(":")

# Watcher + Settings                     
$fsw = New-Object IO.FileSystemWatcher $folder, $filter
$fsw.IncludeSubdirectories = $false
$fsw.NotifyFilter = [IO.NotifyFilters]'FileName', 'DirectoryName'

# Register Event (when file is created)
$onCreated = Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated 
-Action {

# Foreach file loop 
ForEach ($f in $fsw)
{
    if (($File = Get-Item $Event.SourceEventArgs.FullPath | select -Expand 
Extension) -eq ".txt")
    {
        #Used for file testing - Opens the text file for 10 secs, then kills 
it.
        #Start-Process -FilePath $Event.SourceEventArgs.FullPath  | %{ sleep 
10; $_ } | kill


        # Variables for move   
        $folderpath = ($Event.SourceEventArgs.FullPath | Split-Path)
        $folderfile = ($Event.SourceEventArgs.FullPath | Split-Path -Leaf)
        $destination = "C:\Program Files\Whatever\Connector\Staging\"
        $newname = "job.import.$date"+"_"+"$time.txt"


    }

    # Variables for logging
    $logpath = 'C:\Program 
Files\Whatever\Connector\Export\JobStatus\outlog.txt'

    # Grab current file and move to "Staging" folder
    try
    {



        Get-ChildItem -Path $folderpath -Filter $folderfile | Move-Item - 
Destination $destination | sleep 5 | Write-Host Rename-Item 
$destination$folderfile -NewName $newname | Out-File -FilePath $logpath - 
Append
        Write-Host $destination$newname
        #sleep 5

        #Rename-Item "$destination $folderfile" -NewName $newname
        #Write-Host $destination $folderfile
        #"File $folderfile renamed to $newname" | Out-File -FilePath 
$logpath -Append

        # Log the move in logfile   
        "File $folderfile moved to $destination" | Out-File -FilePath 
$logpath -Append






    }

    # Log if errors + clear
    catch
    {
        $error | Out-File -FilePath $logpath -Append
        $Error.Clear()
    }
}
}
烤面包机

当没有对象输出时,管道被破坏。move-item除非使用-passthru参数,否则不会输出对象此外,set-sleep不输出任何内容。所以,rename-item永远达不到。

之后的管道更换move-item,并sleep用分号,它应该工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PowerShell重命名文件

来自分类Dev

如何在PowerShell中使用条件语句重命名文件

来自分类Dev

在使用 Powershell 移动文件之前重命名文件

来自分类Dev

Powershell脚本来移动和重命名文件

来自分类Dev

Powershell文件重命名语法

来自分类Dev

Powershell文件重命名语法

来自分类Dev

如何在PowerShell中使用连续的数字重命名每个.jpg文件名

来自分类Dev

使用PowerShell移动文件时检测重复文件并重命名

来自分类Dev

使用Powershell递归重命名文件

来自分类Dev

在 PowerShell 中重命名文件名

来自分类Dev

Powershell重命名目录中的所有文件,重命名值来自被重命名的文件

来自分类Dev

Powershell文件和子文件夹文件重命名

来自分类Dev

如何在Powershell中复制文件夹并将其重命名为当前日期和时间?

来自分类Dev

Powershell重命名文件,同时保持原始文件顺序

来自分类Dev

PowerShell重命名多个文件,文件名的特定部分

来自分类Dev

移动文件后如何使Powershell生成日志?

来自分类Dev

从服务器收到文件后,如何在C#中移动文件并重命名?

来自分类Dev

从服务器收到文件后,如何在C#中移动文件并重命名?

来自分类Dev

Windows Powershell重命名列标题CSV文件

来自分类Dev

使用foreach循环在Powershell中批量重命名文件

来自分类Dev

如果名称包含<string>,则Powershell重命名文件

来自分类Dev

使用Powershell重命名多个工作表和多个文件

来自分类Dev

通过对多个条件进行过滤来重命名Powershell文件

来自分类Dev

Powershell根据最近修改的日期重命名文件

来自分类Dev

在Powershell中使用前缀批量重命名多个文件

来自分类Dev

重命名子文件夹中的PowerShell错误

来自分类Dev

在Powershell中使用Get-ChildItem的结果重命名文件

来自分类Dev

Powershell使用LastWriteTime前缀重命名多个文件

来自分类Dev

Powershell脚本重命名目录中的所有文件

Related 相关文章

  1. 1

    PowerShell重命名文件

  2. 2

    如何在PowerShell中使用条件语句重命名文件

  3. 3

    在使用 Powershell 移动文件之前重命名文件

  4. 4

    Powershell脚本来移动和重命名文件

  5. 5

    Powershell文件重命名语法

  6. 6

    Powershell文件重命名语法

  7. 7

    如何在PowerShell中使用连续的数字重命名每个.jpg文件名

  8. 8

    使用PowerShell移动文件时检测重复文件并重命名

  9. 9

    使用Powershell递归重命名文件

  10. 10

    在 PowerShell 中重命名文件名

  11. 11

    Powershell重命名目录中的所有文件,重命名值来自被重命名的文件

  12. 12

    Powershell文件和子文件夹文件重命名

  13. 13

    如何在Powershell中复制文件夹并将其重命名为当前日期和时间?

  14. 14

    Powershell重命名文件,同时保持原始文件顺序

  15. 15

    PowerShell重命名多个文件,文件名的特定部分

  16. 16

    移动文件后如何使Powershell生成日志?

  17. 17

    从服务器收到文件后,如何在C#中移动文件并重命名?

  18. 18

    从服务器收到文件后,如何在C#中移动文件并重命名?

  19. 19

    Windows Powershell重命名列标题CSV文件

  20. 20

    使用foreach循环在Powershell中批量重命名文件

  21. 21

    如果名称包含<string>,则Powershell重命名文件

  22. 22

    使用Powershell重命名多个工作表和多个文件

  23. 23

    通过对多个条件进行过滤来重命名Powershell文件

  24. 24

    Powershell根据最近修改的日期重命名文件

  25. 25

    在Powershell中使用前缀批量重命名多个文件

  26. 26

    重命名子文件夹中的PowerShell错误

  27. 27

    在Powershell中使用Get-ChildItem的结果重命名文件

  28. 28

    Powershell使用LastWriteTime前缀重命名多个文件

  29. 29

    Powershell脚本重命名目录中的所有文件

热门标签

归档