Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PowerShell-如何将以下脚本组合在一起+;调整页眉和页脚_Powershell_Scripting - Fatal编程技术网

PowerShell-如何将以下脚本组合在一起+;调整页眉和页脚

PowerShell-如何将以下脚本组合在一起+;调整页眉和页脚,powershell,scripting,Powershell,Scripting,下面是我目前正在编写的Word脚本文档的一个示例 脚本会更改所有文件中的一个单词,但****不会****更改部分文件名以及页眉和页脚 $objWord = New-Object -comobject Word.Application $objWord.Visible = $false $list = Get-ChildItem "C:\Users\*.*" -Include *.doc* foreach($item in $list){ $objDoc = $objWord.Documen

下面是我目前正在编写的Word脚本文档的一个示例 脚本会更改所有文件中的一个单词,但****不会****更改部分文件名以及页眉和页脚

$objWord = New-Object -comobject Word.Application  
$objWord.Visible = $false

$list = Get-ChildItem "C:\Users\*.*" -Include *.doc*
foreach($item in $list){
$objDoc = $objWord.Documents.Open($item.FullName,$true)

$objSelection = $objWord.Selection 
$wdFindContinue = 1
$FindText = "COMPUTER" 
$MatchCase = $False 
$MatchWholeWord = $true
$MatchWildcards = $False 
$MatchSoundsLike = $False 
$MatchAllWordForms = $False 
$Forward = $True 
$Wrap = $wdFindContinue 
$Format = $False 
$wdReplaceNone = 0 
$ReplaceWith = "DESKTOP" 
$wdFindContinue = 1 
$ReplaceAll = 2

$a = $objSelection.Find.Execute($FindText,$MatchCase,$MatchWholeWord, ` 
$MatchWildcards,$MatchSoundsLike,$MatchAllWordForms,$Forward,` 
$Wrap,$Format,$ReplaceWith,$ReplaceAll) 
$objDoc.Save()
$objDoc.Close()
}
$objWord.Quit()
以下是更改部分文件名的纸条:

PS C:\User> get-childitem | foreach { rename-item $_ $_.Name.Replace("file1", "computer") }
我怎样才能把所有的东西放在一起?
谢谢,最后一段代码超出了您在word中的操作范围。所以,当你说联合收割机时,就像你已经在做的那样:

您没有说出/显示从最后一个代码段中得到的错误

当试图重命名文件时,您必须使用完整的文件名,其中包括该文件的路径,就像您在word段中所做的那样

Get-ChildItem -Path E:\Temp -Filter '*.txt' 

    Directory: E:\Temp

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       11/27/2018   3:51 PM              0 OriginalFileName.txt


Get-ChildItem -Path 'E:\Temp' -Filter '*.txt' | 
ForEach { Rename-Item -Path $_.FullName -NewName ($_.FullName.Replace('Original','New')) -WhatIf }


ForEach { Rename-Item -Path $_.FullName -NewName ($_.FullName.Replace('Original','New')) -WhatIf }
What if: Performing the operation "Rename File" on target "Item: E:\Temp\OriginalFileName.txt Destination: E:\Temp\NewFileName.txt".



Get-ChildItem -Path 'E:\Temp' -Filter '*.txt' | 
ForEach { Rename-Item -Path $_.FullName -NewName ($_.FullName.Replace('Original','New')) }



Get-ChildItem -Path E:\Temp -Filter '*.txt' 


    Directory: E:\Temp

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       11/27/2018   3:51 PM              0 NewFileName.txt


foreach($item in $list)
{
    $objDoc = $objWord.Documents.Open($item.FullName,$true)

    $objSelection = $objWord.Selection 
    $wdFindContinue = 1
    $FindText = "COMPUTER" 
    $MatchCase = $False 
    $MatchWholeWord = $true
    $MatchWildcards = $False 
    $MatchSoundsLike = $False 
    $MatchAllWordForms = $False 
    $Forward = $True 
    $Wrap = $wdFindContinue 
    $Format = $False 
    $wdReplaceNone = 0 
    $ReplaceWith = "DESKTOP" 
    $wdFindContinue = 1 
    $ReplaceAll = 2

    $a = $objSelection.Find.Execute($FindText,$MatchCase,$MatchWholeWord, ` 
    $MatchWildcards,$MatchSoundsLike,$MatchAllWordForms,$Forward,` 
    $Wrap,$Format,$ReplaceWith,$ReplaceAll) 
    $objDoc.Save()
    $objDoc.Close()

    Rename-Item -Path $item.FullName -NewName ($item.FullName.Replace($item.BaseName,$FindText)) -WhatIf
}
$objWord.Quit()

当然,只需删除-WhatIf即可真正运行它。

您的word代码中没有任何内容可以满足您的页眉页脚需求。更改文件名或文件名的一部分是一种常见做法,例如在帮助文件中以及在web和此站点上,您的重命名命令是静态的,但您说您正在访问多个文件。您是说,所有文件都包含单词file1,并且您正试图用单词computer替换file1吗?这是因为所有文件的名称都是相同的,这不是一件事。我想知道是否有一种方法可以组合所有文件。我确实理解代码没有处理页眉和页脚。想知道是否有人可以help@postanote这就是我所说的,但我尝试添加以下代码:get childitem | foreach{rename item$\u$\ uName.Replace(“test”,“test1”)}更改文件名,但最终得到了一个错误。请参阅我的重命名努力的答案。谢谢。我稍后会尝试运行它