需要在powershell中创建动态文件夹,并将其用作copy-item中的变量

时间:2013-11-08 07:25:02

标签: powershell

我需要在power shell中创建一个动态文件夹,并将一些文件复制到另一个位置。我使用下面的脚本。

$fso = new-object -ComObject scripting.filesystemobject

$fso.CreateFolder("d:\logs $(get-date -f yyyy-MM-dd-hh-mm-ss)")

我正在尝试将上面创建的文件夹路径传递给变量,并将其用于下面的复制项

$A=$fso.CreateFolder("d:\logs $(get-date -f yyyy-MM-dd-hh-mm-ss)")

然后

copy-item c:\logs $A

我不确定我在这里缺少什么,你能帮帮我吗,

2 个答案:

答案 0 :(得分:3)

尽可能避免COM对象。尝试这样的事情:

#Create folder
$f = New-Item "d:\logs\$(get-date -f yyyy-MM-dd-hh-mm-ss)" -ItemType Directory -Force

#Copy all files inside c:\logs to new folder (if you need to include files from subfolders, add -Recurse parameter)
Copy-Item C:\logs\* $f.FullName

答案 1 :(得分:0)

不要使用COM对象。目录创建是使用New-Item cmdlet完成的,一个简单的快捷方式是使用md,如此,

# Directory name is created with a format string
$dirName = "c:\temp\logs_{0}" -f (get-date).ToString("yyyy-MM-dd-hh-mm-ss")
$dirName # Check the output
c:\temp\logs_2013-11-08-10-18-42

# Create dir if needed
if(-not (test-path $dirName)) {
    md $dirName | out-null
} else {
    write-host "$dirName already exists!"
}