2
Is it possible to return the name of a file/program by a VBS script? Type when dragging and dropping into the script or opening with... the script, it returns the name.
2
Is it possible to return the name of a file/program by a VBS script? Type when dragging and dropping into the script or opening with... the script, it returns the name.
3
The Wscript.Arguments recognizes the file in the sequence of the parameters as if it were a normal executable and with GetFileName you can take the name and GetAbsolutePathName will take the full path.
An example of a script:
Dim Arg
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Verifica se selecionou arrastou ao menos um arquivo
If WScript.Arguments.Count > 0 Then
    'Itera todos arquivos que soltou em uma ação
    For Each Arg in Wscript.Arguments
        'Remove possíveis espaços
        Arg = Trim(Arg)
        Set objFile = objFSO.GetFile(Arg)
        'Exibe um dialogo somente para testes
        MsgBox("Nome: " & objFSO.GetFileName(objFile) & " - caminho: " & objFSO.GetAbsolutePathName(objFile))
    Next
End If
Example working from script:
If you want to limit to one file only, then change the line:
If WScript.Arguments.Count > 0 Then
To
If WScript.Arguments.Count = 1 Then
Should stay like this:
Dim Arg
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Verifica se selecionou arrastou um arquivo
If WScript.Arguments.Count = 1 Then
    'Itera todos arquivos que soltou em uma ação
    For Each Arg in Wscript.Arguments
        'Remove possíveis espaços
        Arg = Trim(Arg)
        Set objFile = objFSO.GetFile(Arg)
        'Exibe um dialogo somente para testes
        MsgBox("Nome: " & objFSO.GetFileName(objFile) & " - caminho: " & objFSO.GetAbsolutePathName(objFile))
    Next
End If
To check if it is a file and not a folder, use FileExists/FolderExists
An example that checks whether it is a file and how many you have selected:
Dim Arg
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Verifica se selecionou arrastou ao menos um arquivo
If WScript.Arguments.Count = 1 Then
    'Itera todos arquivos que soltou em uma ação
    For Each Arg in Wscript.Arguments
        'Remove possíveis espaços
        Arg = Trim(Arg)
        If objFSO.FileExists(Arg) Then
            Set objFile = objFSO.GetFile(Arg)
            'Exibe um dialogo somente para testes
            MsgBox("Nome: " & objFSO.GetFileName(objFile) & " - caminho: " & objFSO.GetAbsolutePathName(objFile))
        Else
            MsgBox("Este arquivo não existe ou é uma pasta")
        End If
    Next
ElseIf WScript.Arguments.Count > 1 Then
    MsgBox("Você mais de um arquivo")
Else
    MsgBox("Você não selecionou nenhum arquivo")
End If
Note: Save the file . vbs as ANSI (windows-1252 or iso-8859-1 or compatible), UTF-8 or other type of Unicode may not be displayed on
MsgBox(unless you make adjustments to the script)
2
Yes, it is possible. See Filesystemobject:
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\Scripts\Test.txt")
Wscript.Echo "File name: " & objFSO.GetFileName(objFile)
I think you do not understand me, see, this script returns the name of the file specified by the variable objFile, my doubt is if it is possible to return the name of the file that was opened dragged and dropped in the script understood?
It’s unclear what you want. The answer I gave is to exactly your question. Dragged and dropped? In what part of your application is a Drag n drop?
good as can say, I get it in batch, but wanted in vbs see the following set Replay_Locale=%1 echo %Replay_Locale% if I drag and drop in batch it returns me the name/path of the understood file?
Marcelo, he wants Desktop interaction with dragdrop.
Browser other questions tagged windows visual-basic-6 vbs
You are not signed in. Login or sign up in order to post.
Jefter, I think what you want is
Wscript.Arguments.– Guilherme Nascimento
could recommend me some material on?
– Jefter Rocha
It’s not a language I know, but I’m making an example and I’m sending it to you.
– Guilherme Nascimento