Batch Extract path and filename from a variable

前端 未结 5 1579
故里飘歌
故里飘歌 2020-11-27 11:18

How can I extract path and filename from a variable?

Setlocal EnableDelayedExpansion
set file=C:\\Users\\l72rugschiri\\Desktop\\fs.cfg

I wa

5条回答
  •  误落风尘
    2020-11-27 12:07

    Late answer, I know, but for me the following script is quite useful - and it answers the question too, hitting two flys with one flag ;-)

    The following script expands SendTo in the file explorer's context menu:

    @echo off
    cls
    if "%~dp1"=="" goto Install
    
    REM change drive, then cd to path given and run shell there
    %~d1
    cd "%~dp1"
    cmd /k
    goto End
    
    :Install
    rem No arguments: Copies itself into SendTo folder
    copy "%0" "%appdata%\Microsoft\Windows\SendTo\A - Open in CMD shell.cmd"
    
    :End
    

    If you run this script without any parameters by double-clicking on it, it will copy itself to the SendTo folder and renaming it to "A - Open in CMD shell.cmd". Afterwards it is available in the "SentTo" context menu.

    Then, right-click on any file or folder in Windows explorer and select "SendTo > A - Open in CMD shell.cmd"

    The script will change drive and path to the path containing the file or folder you have selected and open a command shell with that path - useful for Visual Studio Code, because then you can just type "code ." to run it in the context of your project.

    How does it work?

    %0 - full path of the batch script
    %~d1 - the drive contained in the first argument (e.g. "C:")
    %~dp1 - the path contained in the first argument
    cmd /k - opens a command shell which stays open

    Not used here, but %~n1 is the file name of the first argument.

    I hope this is helpful for someone.

提交回复
热议问题