newPath
是函数analyse
的参数,在此处写入。我的情况有问题......
目标是在.txt中写入每个地址(如果它还没有),并且mSize
(来自工作函数的结果)是否大于seuil
(阈值)。 “seuil”在这里等于0。我正在匹配文件夹中的代码,并且分析了此文件夹之后的每个文件夹。
问题是,它工作正常......仅限2个地址。 我不明白,当我启动代码时,只写了两行。通过测试,我认为“结果”实际上取空值,我不知道何时以及为什么。
$result = get-content -Path O:\folder\public\F*******\parcoursArborescence\logs.txt
$test = "start"
$test
cd $newPath
$newPath
$result
$dirSize = [math]::round($(getDirSize)/1048576, 2)
$mSize = [math]::round($(multimediaSize), 2)
if (($result -match [regex]::Escape($newPath + ";") -eq $FALSE)) {
$testR = $false
}
if (($result -match [regex]::Escape($newPath + ";") -eq $TRUE)) {
$testR = $true
}
$mSize
$testR
if ($mSize -gt $seuil -and $testR -eq $FALSE) {
$dataWriting = "writing..."
$dataWriting
$data = $newPath + ";" + $dirSize + ";" + $mSize + ";" + $(mmPercent) + ";" + $(getLastWriting) + ";" + $(getLastAccess)
$data | out-file -append O:\folder\public\F*******\parcoursArborescence\logs.txt -Encoding ASCII
}
dir |
foreach-object {
if ($_.PsISContainer -eq $True -and $result -notMatch [regex]::escape($_.fullname + ";")) {
$oldPath = $newPath
$newPath = $_.fullname
analyse $newPath
}
else {
$oldPath = cd ..\ | get-location
$newPath = $oldPath
}
}
以下是我的文本文件的一些行:
O:\folder\public\DataIntegrator;1030.95;812.7;79;08/13/2013 13:28:49;11/25/2015 09:47:28
O:\folder\public\DataIntegrator\package;988.99;810.93;82;08/13/2013 13:28:49;11/25/2015 09:47:28
我的工作是对不同类型的文件进行分类。我希望文本文件中充满了引导重文件夹的地址(其中长度为<“seuil”)。我正在处理的条件不应该允许再次写入.txt中的地址。这两条线是唯一在atm工作的线;在此之后,没有写入地址。我试着在这里和那里放一些测试值;重要的一个(我猜)是“testR”之一。一开始,它起作用并说它的值是真还是假。但是,我不知道为什么以及什么时候开始说什么都没有,让我猜它得到一个空值。
newPath的例子:0:\ folder \ public \ DataIntegrator - >分析DataIntegrator
编辑:我稍微修改了一下代码。这里是 : http://pastebin.com/zKaK2ZWX对于这个问题,唯一重要的是42首先。即使有这些条件,testR也不会改变并保持错误。它永远不会确认其他两个条件之一。如果我将testR切换为true,那么它将保持正确。
答案 0 :(得分:0)
好的,我想我明白了。
我对-match
条件进行了越来越多的测试。看起来输出不是布尔值,而是字符串;它向我发送包含字符串$result
的{{1}}行,因此结果永远不会为false或true。
但是我有一个新问题。如何从中获取布尔值?我需要知道$testPath
是否包含$result
。