下面的脚本创建一个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
}
答案 0 :(得分:2)
在文件中:D:\serverlist\list.txt
文件末尾是否有换行符(空白行)?即,当您执行foreach
循环时,空白行会将$IP
设置为空白,这会将路径更改为:
"D:\LOG\$str_yesterday\\$str_yesterday-log.txt"
PowerShell将忽略第二个斜杠,并将文件放在根文件夹中。