从用户的 CSV 中检查文件夹是否存在于 NAS 中
Check if a folder exists or not in the NAS from a CSV of users
我必须制作一个脚本,从包含用户列表的 CSV 文件中检查文件是否存在于我们的 NAS 中。
我做了这个小脚本,但结果有点坏了,我没有
理解为什么拼写错误是“{user=USER10}”而不仅仅是“USER10”
This is the result from the script:
This is my CSV of users
脚本:
$sInputFile = "D:\Script\ADD2000.csv"
$sColumnName = "User"
$tblUsers = Import-Csv $sInputFile
$FolderPath = "\somepath.tech.intra.workplace.fr\users$\ADD"
$Retrieve = Test-Path $Path
foreach($user in $tblUsers){
$Path = $FolderPath + "\" + $($user) + ".ADD2000"
if (!(Test-Path $Path)) {
write-host "$path does not exist"
} Else {write-host "it exist"}
}
您正在导入包含“用户”列的 CSV。
您需要 return 该列的值,例如$($user.User) 不只是 $($user).
$user 包含整行 $user.User 仅包含该列的值。
查看您输入的 CSV 图像,我可以看到它有一个 header user
。导入该 csv 时,该列中的所有项目都是 objects,其中一个 属性 称为 user
。
要获得它的 value,您需要像 $user.user
.
一样展开它
在您的情况下,由于文件中只有一列,如果您在导入时直接展开值会更简单,这样您就可以遍历用户名的字符串数组。
$sInputFile = 'X:\Folder\AllUsers.csv' # full path to the input csv file
$tblUsers = (Import-Csv $sInputFile).user # just get the values of all items for column 'user' as striong array
$FolderPath = '\somepath.tech.intra.workplace.fr\users$\ADD'
foreach($userName in $tblUsers) {
$path = Join-Path -Path $FolderPath -ChildPath "$username.ADD2000"
if (Test-Path $Path -PathType Container) {
Write-Host "$path exists"
}
else {
Write-Warning "$path could not be found"
}
}
我必须制作一个脚本,从包含用户列表的 CSV 文件中检查文件是否存在于我们的 NAS 中。 我做了这个小脚本,但结果有点坏了,我没有 理解为什么拼写错误是“{user=USER10}”而不仅仅是“USER10”
This is the result from the script:
This is my CSV of users
脚本:
$sInputFile = "D:\Script\ADD2000.csv"
$sColumnName = "User"
$tblUsers = Import-Csv $sInputFile
$FolderPath = "\somepath.tech.intra.workplace.fr\users$\ADD"
$Retrieve = Test-Path $Path
foreach($user in $tblUsers){
$Path = $FolderPath + "\" + $($user) + ".ADD2000"
if (!(Test-Path $Path)) {
write-host "$path does not exist"
} Else {write-host "it exist"}
}
您正在导入包含“用户”列的 CSV。
您需要 return 该列的值,例如$($user.User) 不只是 $($user).
$user 包含整行 $user.User 仅包含该列的值。
查看您输入的 CSV 图像,我可以看到它有一个 header user
。导入该 csv 时,该列中的所有项目都是 objects,其中一个 属性 称为 user
。
要获得它的 value,您需要像 $user.user
.
在您的情况下,由于文件中只有一列,如果您在导入时直接展开值会更简单,这样您就可以遍历用户名的字符串数组。
$sInputFile = 'X:\Folder\AllUsers.csv' # full path to the input csv file
$tblUsers = (Import-Csv $sInputFile).user # just get the values of all items for column 'user' as striong array
$FolderPath = '\somepath.tech.intra.workplace.fr\users$\ADD'
foreach($userName in $tblUsers) {
$path = Join-Path -Path $FolderPath -ChildPath "$username.ADD2000"
if (Test-Path $Path -PathType Container) {
Write-Host "$path exists"
}
else {
Write-Warning "$path could not be found"
}
}