0

USBドライブに名前を割り当てましたが、文字ではなく名前に基づいてデスクトップショートカットでターゲットにする簡単な方法があるかどうか疑問に思いました。

したがって、F:\ program_to_run.exeの代わりに、次のように機能します:DRIVENAME:\ program_to_run.exe

上記は明らかに機能しませんが、ショートカットファイルまたは単純なバッチファイルのいずれかを使用して、同様のことを実行できますか?

4

2 に答える 2

1

VB.Net を始めたばかりなので、これを行うコマンド ライン プログラムを作成してみませんか?

  1. コンソール アプリを作成する

このコードを貼り付けます:

Module Module1

    Sub Main()

        Dim program = ""
        Dim drive As String = ""

        Try
            'Get the commandLine, without thhis application name or the beginning space
            Dim commandLine As String = Environment.CommandLine.Replace(System.Reflection.Assembly.GetExecutingAssembly().Location, "").Replace("""", "").Substring(1)

            'Get the DriveNAme part of the commaneLine
            Dim driveName As String = commandLine.Split(":"c)(0)
            drive = GetDriveByName(driveName)

            'Get the Program Name part of the commandLine
            program = commandLine.Split(":"c)(1)

            If drive.Length = 0 Then Throw New Exception("No drive was found with the name '" + driveName + "'")

            Dim starter As New System.Diagnostics.ProcessStartInfo(drive + program)
            starter.UseShellExecute = True
            System.Diagnostics.Process.Start(starter)

        Catch ex As Exception
            Console.WriteLine("Failed starting " + drive + program + ". " + ex.Message)
        End Try


    End Sub

    ''' <summary>Returns the drive letter of the Fixed or Removable drive with the specified name</summary>
    ''' <param name="DriveName"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function GetDriveByName(ByVal DriveName As String) As String

        Dim returnDrive As String = ""

        For Each drive As System.IO.DriveInfo In System.IO.DriveInfo.GetDrives()
            If (drive.DriveType = (IO.DriveType.Fixed Or IO.DriveType.Removable)) Then  'Only interested in removable drives
                If (drive.VolumeLabel.Equals(DriveName, StringComparison.OrdinalIgnoreCase)) Then
                    'This is our drive!
                    returnDrive = drive.Name
                End If
            End If
        Next drive

        Return returnDrive
    End Function
End Module

次に、アプリケーションに適切な名前 (例: StartByDriveName.exe) を付けてビルドし、コンパイルします。

バッチファイルで使用できるようになりました:

StartByDriveName <driveName>:<path>\ProgramName

例: StartByDriveName MomsUSB:\Program Files\Excel.Exe

于 2012-10-08T03:04:18.943 に答える
0

ディスク管理ユーティリティで、特定のドライブ文字を個々のデバイスに永続的に割り当てることができると思います

于 2012-09-23T05:08:34.133 に答える