Foreach循环错误地将文件添加到父文件夹

时间:2019-11-15 16:05:02

标签: powershell

下面的脚本创建一个IP地址名称的文件夹,并向其中添加3个文件。但是,它还在父Logs文件夹中添加了3个文件。

Logs \ 10.2.2.1 \ 3个文件应该在这里,但是,这3个文件也显示在\ Logs文件夹中。

$date = (Get-Date).AddDays(-1)

$str_yesterday = '20190902'

$exe = "D:\task-scripts\7z.exe"

foreach ($IP in Get-Content D:\serverlist\list.txt) {
    New-Item -ItemType Directory -Force -Path D:\LOG\$str_yesterday\$IP
    $file = New-Item -ItemType file "D:\LOG\$str_yesterday\$IP\$str_yesterday-log.txt" -Force
    $date_MSG = &$exe a -r D:\LOG\$str_yesterday\$IP\MSG_$str_yesterday.zip \\$IP\$str_yesterday
    $data_Server = &$exe a -r D:\LOG\$str_yesterday\$IP\Server_$str_yesterday.zip \\$IP\$str_yesterday
}

1 个答案:

答案 0 :(得分:2)

在文件中:D:\serverlist\list.txt

文件末尾是否有换行符(空白行)?即,当您执行foreach循环时,空白行会将$IP设置为空白,这会将路径更改为:

"D:\LOG\$str_yesterday\\$str_yesterday-log.txt"

PowerShell将忽略第二个斜杠,并将文件放在根文件夹中。