如何在执行下一步之前检查所有字符串
How to check all strings before doing the next step
我想进行字符串比较。我使用 foreach 循环,但我想在比较完所有字符串后执行 move-item
。
我的概念是“如果所有字符串都不匹配,则执行 move-item
。”
我该怎么做?
这是我现在的代码,但它是“如果匹配,执行 move-item
$Myfile=dir *my file name*
$directory=dir D:\example (there are many directory)
foreach($dir in $directory){
if($dir match $Myfile.basename ){
move-item $Myfile.fullname -destination D:\example
}
}
我想在字符串比较后做 move-item
以确保 my file name
不存在 $directory
这是我想要实现的目标
if( ("all of the directory Name") -notmatch $myfile.basename ){
move-item XXX to XXX
}
如果我使用 -notmatch ,它将在第一次循环时执行移动项目。所以我需要在检查完所有内容后做 move-item
...
您可以尝试使用 notcontains 运算符来检查目录文件中出现的文件基名:
$myfile = get-childitem "filepath"
$directory = @(get-childitem "D:\Example" | foreach {$_.basename})
if ($directory -notcontains $myfile.basename) {
move-item xxx to xxx
}
如果匹配项,您可以将变量设置为真:
$Myfile=dir *my file name*
$directory=dir D:\example (there are many directory)
$move = $false
foreach($dir in $directory){
if($dir match $Myfile.basename ){
$move = $true
}
}
if ($move){
move-item $Myfile.fullname -destination D:\example
}
我想进行字符串比较。我使用 foreach 循环,但我想在比较完所有字符串后执行 move-item
。
我的概念是“如果所有字符串都不匹配,则执行 move-item
。”
我该怎么做?
这是我现在的代码,但它是“如果匹配,执行 move-item
$Myfile=dir *my file name*
$directory=dir D:\example (there are many directory)
foreach($dir in $directory){
if($dir match $Myfile.basename ){
move-item $Myfile.fullname -destination D:\example
}
}
我想在字符串比较后做 move-item
以确保 my file name
不存在 $directory
这是我想要实现的目标
if( ("all of the directory Name") -notmatch $myfile.basename ){
move-item XXX to XXX
}
如果我使用 -notmatch ,它将在第一次循环时执行移动项目。所以我需要在检查完所有内容后做 move-item
...
您可以尝试使用 notcontains 运算符来检查目录文件中出现的文件基名:
$myfile = get-childitem "filepath"
$directory = @(get-childitem "D:\Example" | foreach {$_.basename})
if ($directory -notcontains $myfile.basename) {
move-item xxx to xxx
}
如果匹配项,您可以将变量设置为真:
$Myfile=dir *my file name*
$directory=dir D:\example (there are many directory)
$move = $false
foreach($dir in $directory){
if($dir match $Myfile.basename ){
$move = $true
}
}
if ($move){
move-item $Myfile.fullname -destination D:\example
}