我正在尝试编写一个Powershell脚本,该脚本将读取桌面上填充有用户名的文本文件,然后转到网络共享上的指定文件夹(例如u:\data
),并将文本文件中的每个用户的内容从该文件夹复制到另一个网络共享(例如y:\information
)。
这是怎么写的?
我已经尝试了几件事与阅读文本文件,然后尝试几个命令复制和粘贴,但他们都失败了。
更新:
以下是我迄今为止所做的工作:
$user = Get-Content "test.txt"
$path = "\\abnas2\abusers\users"
$path2 = "\\abnas2\abdept\dept\testcopy"
$Copy = Copy-Item -path $path\$user\ * -Destination $path2\$user
我在test.txt文件中有一个名为user1
的用户名,它提取了这个名称,并完美地复制了它。
现在,如果我向test.txt文件中添加多个用户名并运行上面的命令,它会出错,返回的错误使列表中的3个用户名看起来像是一个用户名。
我需要做的是为列表中的每个名字运行该命令。我想我可以使用foreach
命令,但不确定如何操作。
更新-2014年9月4日:我已尝试以下操作,但返回错误:$user =获取内容"test.txt" $path ="\abnas2\abusers\users" $path2 ="\abnas2\abdept\dept\testcopy" $Copy =复制项目路径$路径$user *-目标$路径2$每个用户($user中的$用户名){复制项目路径$路径$用户名 *-目标$路径2$用户名}
当我运行它时,我得到以下错误:复制项目:位于指定路径\abnas2\abusers\users\user1 user2 user3的对象不存在。
这些是我的test.txt文件中的名字,有没有办法让它一次读取一行,然后执行复制,完成后转到列表中的下一个名字,然后执行相同的操作?我不知道如何让它这样做。
1条答案
按热度按时间xqnpmsa81#
您可以使用foreach
在这种情况下:
会将
$path
下$user
中每个命名文件夹的内容复制到$path2
中的相应文件夹。