2

PowerShellの特定のファイル名に現在の日付を追加する(非常に)単純なスクリプトを作成し、簡単にアクセスできるようにSendToショートカットを設定しました。

ただし、スペースを含むファイル名はうまく処理されません。ファイル名が「thisFile.txt」の場合、日付が正しく追加されて「thisFile.txt.20121227」になりますが、ファイル名が「this File.txt」の場合、SendToショートカットでは機能しません。設定。

ただし、どちらのタイプのファイル名でもコマンドラインから機能しますが、その理由を理解しようと頭を悩ませてきました。

これは私が使用しているコードのスニペットです:

$enddate = (Get-Date).toString("yyyyMMdd")
$filename = $arg

foreach ($filename in $args) {
    Rename-Item $filename $filename"."$enddate
}

これは、私が設定したショートカットの[ターゲット]フィールドにあります。

"%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe " -NonInteractive  -WindowStyle Hidden -NoProfile -noexit &"C:\Scripts\adddate.ps1"
4

2 に答える 2

1

スクリプトパスの前にあるアンパサンド()の代わりにスイッチを使用する-f&と、問題が解決するはずです。

于 2012-12-27T21:27:14.850 に答える
0

少しデバッグを行うことをお勧めします。

スペースを含むファイル名が配列に分割されていることを賭けます。

forループで、$filename変数の出力をファイルに書き込みます。スクリプトに「ねえ、これには拡張子がありません!これが拡張子の付いたファイル名になるまで、この領域にさらに項目を追加する必要があります!」という小さなロジックを追加する必要がある場合があります。 「test-path$filename」はtrueを返します。

于 2012-12-27T20:40:48.977 に答える