Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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 使用power shell在word文档名称的每个大写字符前插入空格_Powershell_Ms Word_Iteration_Rename_Doc - Fatal编程技术网

Powershell 使用power shell在word文档名称的每个大写字符前插入空格

Powershell 使用power shell在word文档名称的每个大写字符前插入空格,powershell,ms-word,iteration,rename,doc,Powershell,Ms Word,Iteration,Rename,Doc,我正在努力在每个大写字符前插入空格,以重命名power shell中的word文档 我尝试使用power shell中的以下脚本在此文件夹中的每个文件的第一个字符前插入空格: 你能告诉我如何写一个脚本来插入和迭代吗 #目标:文件名将显示如下:220519ColdWaterMeters[在此处输入图像描述][1],通过在文件名中添加空格更改所有文件名,使其显示为“220519冷水表” 先前代码 实际上,在文件名、文件夹名、文件名、属性名中使用空格,是以后编码时不必要的麻烦的解决办法。这样做可能/将

我正在努力在每个大写字符前插入空格,以重命名power shell中的word文档

我尝试使用power shell中的以下脚本在此文件夹中的每个文件的第一个字符前插入空格:

你能告诉我如何写一个脚本来插入和迭代吗

#目标:文件名将显示如下:220519ColdWaterMeters[在此处输入图像描述][1],通过在文件名中添加空格更改所有文件名,使其显示为“220519冷水表”

先前代码
实际上,在文件名、文件夹名、文件名、属性名中使用空格,是以后编码时不必要的麻烦的解决办法。这样做可能/将导致报价的复杂性

然而,如果你真的想这样做,试试这种方法

'220519ColdWaterMeters' -csplit '(?=[A-Z])' -ne '' -join ' '
# Results
<#
220519 Cold Water Meters
#>
'220519ColdWaterMeters'-csplit'(?=[A-Z])-ne'-join'-
#结果

事实上,在文件名、文件夹名、文件名、属性名中使用空格是解决以后编码中不必要的麻烦的良方。这样做可能/将导致报价的复杂性

然而,如果你真的想这样做,试试这种方法

'220519ColdWaterMeters' -csplit '(?=[A-Z])' -ne '' -join ' '
# Results
<#
220519 Cold Water Meters
#>
'220519ColdWaterMeters'-csplit'(?=[A-Z])-ne'-join'-
#结果

您可以在这样一个管道中使用带有延迟绑定脚本块的
-creplace

$source_path = "C:\Temp"
$filter = "*.doc"
$new_prefix = " "
Get-ChildItem -Path $source_path -Filter $filter |
    Rename-Item -NewName {($_.basename -creplace '(?=[A-Z])',"$new_prefix") + $_.Extension}

万一扩展名有大写字母,我只针对basename,然后将扩展名添加回来。

您可以在这样一个管道中使用带有延迟绑定scriptblock的
-creplace

$source_path = "C:\Temp"
$filter = "*.doc"
$new_prefix = " "
Get-ChildItem -Path $source_path -Filter $filter |
    Rename-Item -NewName {($_.basename -creplace '(?=[A-Z])',"$new_prefix") + $_.Extension}

以防万一扩展名有大写字母,我只针对基本名称,然后将扩展名添加回来。

只是好奇。。。为什么要在consolehost中执行此脚本,而不是在PowerShell脚本编辑器(即PowerShell ISE或VSCode)中执行此脚本?conoslehost的定义目标是关于交互式命令和运行预定义的代码/脚本、cmdlet等。您可以随时在编辑器中编写您的内容,并根据需要将其发送到consolehost。感谢您让我知道只是好奇。。。为什么要在consolehost中执行此脚本,而不是在PowerShell脚本编辑器(即PowerShell ISE或VSCode)中执行此脚本?conoslehost的定义目标是关于交互式命令和运行预定义的代码/脚本、cmdlet等。您可以随时在编辑器中编写您的内容,并根据需要将其发送给consolehost。谢谢您让我知道