gpt4 book ai didi

PowerShell:如何从源目录中仅复制选定的文件?

转载 作者:行者123 更新时间:2023-12-03 07:04:29 25 4
gpt4 key购买 nike

我是 Powershell 新手,正在尝试运行一个简单的脚本。

我有一个文件列表,我想将其从某个 src_dir 复制到 dst_dir。我写了一个简单的脚本(这显然是错误的,因为当我执行它时它没有做任何事情)。

有人可以帮忙检查一下我做错了什么吗?

# source and destionation directory
$src_dir = "C:\Users\Pac\Desktop\C4new"
$dst_dir = "C:\Users\Pac\Desktop\csci578-hw3\Prism\C4new"

# list of files from source directory that I want to copy to destination folder
# unconditionally
$file_list = "C4newArchitecture.java", "CustomerData.java"

# Copy each file unconditionally (regardless of whether or not the file is there
for($i=0; $i -le $file_list.Length - 1; $i++)
{
Copy-Item -path $src_dir+$file_list[$i] -dest $dst_dir -force
}

最佳答案

假设文件直接位于 $src_dir 下,您可以更简单地执行此操作,即副本可以是一行:

$file_list | Copy-Item -Path {Join-Path $src_dir $_} -Dest $dst_dir -ea 0 -Whatif

-ea 是 -ErrorAction 参数的别名,0 值对应于 SilentlyContinue。这会导致 Copy-Item 忽略错误,例如源文件之一不存在时出现的错误。但是,如果您遇到问题,请暂时删除此参数,以便您可以看到错误消息。

当以交互方式输入这些内容时,我倾向于使用这样的快捷方式,但在脚本中最好将其拼写出来以提高可读性。另请注意,-Path 参数可以采用脚本 block ,即大括号中的脚本。从技术上讲,Copy-Item cmdlet 不会看到脚本 block ,只能看到其执行结果。这通常适用于任何采用管道输入的参数。删除 -WhatIf 以使命令实际执行。

关于PowerShell:如何从源目录中仅复制选定的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1685252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com