Powershell - 声明包含"$_.pdf"的路径



正如标题所说。

我有几个if语句;"测试路径";所以如果我马上声明变量会更好。

$jobs = Get-ChildItem d:Path* -recurse -include *.pdf,*.idx |
Select-Object -expand basename |
Sort-Object
$jobs | foreach-object{
if ((test-path d:Path$_.idx) -and (test-path d:path$_.pdf)){
move-item d:Path$_.idx d:Path
move-item d:path$_.pdf d:Path
}
else {
....
}
}

文件名一直在变化。这就是我使用"$_"的原因。pdf";例如这只是一个简单的例子。再添加一个文件扩展名,是的。代码的功能类似于";如果pdf和idx的基本名称是真/相等的,则将它们"移动";

这完全可以,只是为每个if语句添加路径会使其更加混乱。如有任何帮助,我们将不胜感激。提前感谢!

Test-Path可以接受一组要测试的项目。当这样使用时,它将返回一个布尔值数组。如果该数组至少包含一个$false,则至少缺少一个文件。如果没有,则所有文件都存在。

一个例子是这样的,

# Create a few test files
set-content foo.idx ''
set-content foo.dpf ''
set-content foo.pub ''
# Instead of foo, you'd populate $s with file's basename
# and use a foreach loop
$s ="foo"
# Test if the trio exists. Note variable $s that contains the basename
if( (Test-Path @(".$s.idx", ".$s.dpf", ".$s.pub")) -contains $false){
"nay" # Go here if there was at least one false
}else{
"aye" # go here if all were true
}
# Output
aye
# Change one extension, so trio doesn't exist
if( (Test-Path @(".$s.idx", ".$s.dpf", ".$s.bub")) -contains $false) {
"nay" # Go here if there was at least one false
}else{
"aye" # go here if all were true
}
# Output
nay

我很笨。我只需要把$path$_.pdf放在那里。是吗

相关内容

  • 没有找到相关文章

最新更新