为什么此PowerShell脚本构造意外的文件路径?

dwwilson66

使用从thisthisthis收集的技巧,我终于能够获得一系列文件备份脚本。但是,有一件我无法解决的小事情。没有运行时错误,但是当我运行此脚本时,

$originalPath = "\\Server\Path\_testData\"
$backupPath   = "\\Server\Path\_backup\"
#       
function supportBackup 
{
  "$($originalPath) copying DOC XLS PPT JPG GIF PDF WAV AVI to $($backupPath)"
  Get-ChildItem $originalPath\* -Include *.doc*, *.xls*, *.ppt*, *.jpg, *.gif, *.pdf, *.wav, *.avi | `
  foreach { 
    $targetFile = $backupPath + $_.FullName.SubString($originalPath.Length); 
    New-Item -ItemType File -Path $targetFile -Force;  
    Copy-Item $_.FullName -destination $targetFile 
  } 
  "Support File Backup Completed"
} 
supportBackup

原来的文件路径被倾倒到目标目录,而不是仅仅的文件。

我想要的是:

\\Server\Path\_backup\files-from-testData-directory

我得到的是:

\\Server\Path\_backup\_testData\files-from-testData-directory

我知道这个问题与这个问题密切相关(如果不完全相同),但是在研究这个问题并尝试从中运用一些智慧之后,使用$_.Name变量的各种迭代,我意识到我没有一个很好的理解我以为我做到了。我需要有人向我解释如何使用给定的变量构造目标路径和文件名,以及我需要使用哪些替代变量(或代码)来实现所需的结果。有些东西不是我想要的,我需要帮助来理解它。

安斯加·威彻斯

你太努力了。这样就足够了:

$originalPath = '\\Server\Path\_testData'
$backupPath   = '\\Server\Path\_backup'
$extensions   = *.doc*,*.xls*,*.ppt*,*.jpg,*.gif,*.pdf,*.wav,*.avi

function supportBackup {
  "$($originalPath) copying DOC XLS PPT JPG GIF PDF WAV AVI to $($backupPath)"
  Get-ChildItem "$originalPath\*" -Include $extensions |
    Copy-Item -Destination "$backupPath\" -Force 
  "Support File Backup Completed"
} 

supportBackup

您可以将的结果Get-ChildItem直接传递到中Copy-File但是,目标路径必须以反斜杠结尾,否则该指令将尝试$backupPath用相同名称的文件替换该文件夹,从而导致错误。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此Powershell脚本会提取意外文件以进行ipv4搜索?

来自分类Dev

为什么此脚本给出“意外的文件结尾”语法错误?

来自分类Dev

为什么我不能在批处理文件中运行此Powershell脚本?

来自分类Dev

为什么此Powershell脚本在根文件夹之外创建转换后的图像?

来自分类Dev

为什么使用gzip时脚本中的文件意外结束?

来自分类Dev

为什么此脚本在Windows上创建损坏的PNG文件?

来自分类Dev

为什么此脚本在当前目录中有效,但放置在路径中却失败?

来自分类Dev

为什么此脚本在当前目录中有效,但放置在路径中却失败?

来自分类Dev

为什么文件意外更改?

来自分类Dev

Powershell-为什么不能在脚本中使用此变量?

来自分类Dev

为什么此脚本不更改目录

来自分类Dev

为什么我不能执行此脚本?

来自分类Dev

AppleScript:为什么此脚本启动Safari?

来自分类Dev

为什么此脚本提示输入密码?

来自分类Dev

在文件路径内调用变量的Powershell脚本?

来自分类Dev

为什么此脚本创建重复文件并在末尾添加`-e`?

来自分类Dev

为什么此脚本在终端中起作用,但不能在文件中起作用?

来自分类Dev

从cron运行时,为什么此脚本没有输出到文本文件?

来自分类Dev

调用此Bash脚本时,为什么文件参数必须使用引号?

来自分类Dev

为什么此脚本不复制我的源目录中的文件?

来自分类Dev

?4使用此Bash脚本添加到文件名,为什么?

来自分类Dev

当使用crontab自动运行时,为什么此脚本会输出损坏的文件?

来自分类Dev

为什么此脚本创建重复文件并在末尾添加`-e`?

来自分类Dev

为什么此MEX函数会产生意外结果?

来自分类Dev

为什么此语句引发“意外结束”错误?

来自分类Dev

为什么此HTML给我“意外令牌Y”?

来自分类Dev

读取此CSV文件后,为什么我的powershell自定义属性为空?

来自分类Dev

为什么此Move构造函数不起作用

来自分类Dev

为什么此代码调用副本构造函数?

Related 相关文章

  1. 1

    为什么此Powershell脚本会提取意外文件以进行ipv4搜索?

  2. 2

    为什么此脚本给出“意外的文件结尾”语法错误?

  3. 3

    为什么我不能在批处理文件中运行此Powershell脚本?

  4. 4

    为什么此Powershell脚本在根文件夹之外创建转换后的图像?

  5. 5

    为什么使用gzip时脚本中的文件意外结束?

  6. 6

    为什么此脚本在Windows上创建损坏的PNG文件?

  7. 7

    为什么此脚本在当前目录中有效,但放置在路径中却失败?

  8. 8

    为什么此脚本在当前目录中有效,但放置在路径中却失败?

  9. 9

    为什么文件意外更改?

  10. 10

    Powershell-为什么不能在脚本中使用此变量?

  11. 11

    为什么此脚本不更改目录

  12. 12

    为什么我不能执行此脚本?

  13. 13

    AppleScript:为什么此脚本启动Safari?

  14. 14

    为什么此脚本提示输入密码?

  15. 15

    在文件路径内调用变量的Powershell脚本?

  16. 16

    为什么此脚本创建重复文件并在末尾添加`-e`?

  17. 17

    为什么此脚本在终端中起作用,但不能在文件中起作用?

  18. 18

    从cron运行时,为什么此脚本没有输出到文本文件?

  19. 19

    调用此Bash脚本时,为什么文件参数必须使用引号?

  20. 20

    为什么此脚本不复制我的源目录中的文件?

  21. 21

    ?4使用此Bash脚本添加到文件名,为什么?

  22. 22

    当使用crontab自动运行时,为什么此脚本会输出损坏的文件?

  23. 23

    为什么此脚本创建重复文件并在末尾添加`-e`?

  24. 24

    为什么此MEX函数会产生意外结果?

  25. 25

    为什么此语句引发“意外结束”错误?

  26. 26

    为什么此HTML给我“意外令牌Y”?

  27. 27

    读取此CSV文件后,为什么我的powershell自定义属性为空?

  28. 28

    为什么此Move构造函数不起作用

  29. 29

    为什么此代码调用副本构造函数?

热门标签

归档