0

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

ここで何が欠けているのかわかりません。助けてください。

4

2 に答える 2

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
于 2013-11-08T08:26:18.653 に答える
0

COM オブジェクトを使用しないでください。ディレクトリの作成はNew-Itemコマンドレットで行い、簡単なショートカットは次のように使用します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!"
}
于 2013-11-08T08:23:09.037 に答える