1

これは私をバナナに駆り立てています。何かばかげたことを見逃していると思いますが、約 10 種類のフォーマットを試しましたが、何も機能しません。

これは私が実行しているコードです:

$today=$(Get-Date -Format o)
$destfile = "C:\SEA-FTP\toFTP\SEAInfo-$today.csv"
$srcfile = "C:\SEA-FTP\temp\QueryCSVTempMstr.csv"
Copy-Item $srcfile -Destination $destfile

これはエラーメッセージです:

Copy-Item : The given path's format is not supported.
At C:\SEA-FTP\BCP_SQL_Script-v1.0.ps1:53 char:10
+ Copy-Item <<<<  $srcfile -Destination $destfile
    + CategoryInfo          : NotSpecified: (:) [Copy-Item], NotSupportedException
    + FullyQualifiedErrorId : System.NotSupportedException,Microsoft.PowerShell.Commands.CopyItemCommand

Google 検索でこれに関する 100 万件の質問があることは知っていますが、私は彼らがしていることをやっているようです。フォーマットについて何か考えはありますか?

4

2 に答える 2

0

Windows では、ファイル名にコロン (:) を使用できません。

Get-Date -Format o「2016-08-23T07:54:19.4530323+02:00」という出力が得られます。これにはコロンが含まれます。

名前をそのままにしたい場合は、コロン「:」をダッシュ​​に置き換えることができます。あなたの例では:

$Today = Get-Date -Format o
$SrcFileName = "C:\temp\SEAInfo-$($Today.Replace(":","-")).csv"

しかし、それが私のファイルであれば、タイムスタンプの形式を変更します。ファイル名「SEAInfo-2016-08-23T08-33-36.3268865+02-00.csv」は、このファイルが作成された時期をよく理解するのが私の目には難しいです..

タイムスタンプを取得する必要がある詳細に応じて、次を使用できます。

$Today = Get-Date -Format "yyyyMMdd-HHMMss.ff"
$SrcFileName = "C:\temp\SEAInfo$Today.csv"

それとも日付だけで十分ですか?

$Today = Get-Date -Format "yyyy-MM-dd"
$SrcFileName = "C:\temp\SEAInfo-$Today.csv"

私の目は、「SEAInfo2016-08-23.csv」のようなファイル名を高く評価します。

読みやすいと思うものを試してみてください。ここでは、日付と時刻をフォーマットする方法の多くの例を見つけることができます: https://technet.microsoft.com/en-us/library/ee692801.aspx

于 2016-08-23T06:31:06.790 に答える