1

だから私は毎日のプロジェクトの一部です。毎日、その日のすべてのファイルを保存する新しいフォルダーを作成します。現在の日付に従って名前が付けられ、「エピソード」を表すカウンターが前面に追加されています。形式は WXYZ_YYYY_MM_DD です。

元:

0001_2013-05-09

0002_2013-05-10

0003_2013-05-13

0004_2013-05-14

フォルダーは既に作成されていますが、その日の「現在の」フォルダーに常に移動するショートカットを作成する必要があります。

私のオプションを検討した後、Powershell が最も簡単なようです。ここでスケジューラを使用する必要があることはわかっていますが、既存のショートカットを削除して新しいショートカットを作成するか、既存のショートカット パスの値を編集するかで迷っています。エピソードをインクリメントして日付値に追加する方法が正確にわかりません。ここに文字列を追加しますか?

私はシェルよりも C++ と Java に精通しています。長い間彼らと仕事をしていないので、ここで助けていただければ幸いです。

4

2 に答える 2

2

以下を使用して、powershell でショートカットを作成できます。

$sh = New-Object -ComObject WScript.Shell
$shortCut = $sh.CreateShortcut("C:\latest_folder.lnk")
$shortCut.TargetPath = "C:\foo\bar.txt"
$shortCut.Save()

毎回古いものを削除する必要さえありません。同じコードを実行すると、古いショートカットが上書きされます。

最新のフォルダーを取得するには、次の行を使用できます。

$file = Get-ChildItem -Path "c:\Foo" | Sort-Object -Descending LastWriteTime | select -First 1

$file.FullName は、そのフォルダー/ファイルへの完全なパスを提供します。

于 2013-05-09T20:18:55.857 に答える
1

これを試してみてください

新しいディレクトリへのショートカットが作成されます

$File = Get-ChildItem -Path "C:\Foo" | ?{ $_.PSIsContainer } | Sort-Object -Descending Name | select -First 1

[int]$Counter = ($File -Split("_"))[0]
$Counter += 1
$NewFolder = ("{0:000#}" -f $Counter) + "_" + (Get-Date -Format "yyyy-MM-dd")


$Shell = New-Object -ComObject WScript.Shell
$Shortcut = $Shell.CreateShortcut("C:\foo\latest_folder.lnk")
$Shortcut.TargetPath = "C:\Foo\" + $Newfolder
$Shortcut.Save()
于 2013-05-09T20:57:10.917 に答える