BAT中如何截取第一个输入路径的最后目录名加在第二个输入路径的后边使用
set /p src=c:\fee\mm
set /p dest=d:\jk
如何能让%dest%变量值变成d:\jk\mm for %%a in ("%src:"=%") do set dest="%dest:"=%\%%~nxa" PS:我知道文件的符號鏈接不用參數直接 Mklink 就行了可是我不知道怎麼讓BAT判斷輸入的是路徑還是文件IF怎麼用還請達人修正。。最好滑鼠拖拽的是文件就用Mklink 要是目錄就用Mklink /j
谢谢
以下是:
在WIN7中利用Mklink進行目錄點連接或文件符號鏈接的批處理支持目錄空格。。智能判斷源為文件或是目錄分別調用參數。。感謝CN-DOS的000000000000000大大!!
@echo off
set "m="
set /p src=[請輸入Mklink源文件路徑支持滑鼠拖拽]
set /p lnk=[請輸入Link目標文件路徑支持滑鼠拖拽]
set /p m=[請輸入Link目標名默認同名源文件(目錄)]
set src="%src:"=%"
if defined m (
set _path="%lnk:"=%\%m:"=%"
if not exist %src%\ (
for %%a in (%src%) do (
for %%b in ("%m:"=%") do (
if "%%~xb" neq "%%~xa" set _path="%lnk:"=%\%m:"=%%%~xa"
)
)
)
) else for %%a in (%src%) do set _path="%lnk:"=%\%%~nxa"
Mklink命令是支持帶空格目錄或文件的。。
我的意思是:
第一種:[請輸入Mklink源文件路徑支持滑鼠拖拽]"D:\Users\i - Copy\P h o t o s"
[請輸入Link目標文件路徑支持滑鼠拖拽]"D:\Users\i - Copy\New folder"
在這要判斷源是文件還是目錄
"D:\Users\i - Copy\New folder\P h o t o s"
Press any key to continue . . .
源是目錄
接下來執行 Mklink 帶/j參數命令
第二種:
[請輸入Mklink源文件路徑支持滑鼠拖拽]"D:\Users\i - Copy\desktop.ini"
[請輸入Link目標文件路徑支持滑鼠拖拽]"D:\Users\i - Copy\New folder"
在這要判斷源是文件還是目錄
"D:\Users\i - Copy\New folder\desktop這裡掉了.ini如何補上"
Press any key to continue . . .
源是文件
接下來就執行Mklink不帶任何參數的 命令
@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSIONFOR %%I IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO ( IF EXIST %%I:\* ( CD /D %%I: FOR /F "DELIMS=" %%A IN ('DIR /S/B 2009_*.txt 2^>nul') DO ( SET FOO=%%~NA SET FOO=!FOO:*_=! ECHO/!FOO! %%A ) ) ))PAUSE>NUL
有大大解釋下麼網上找來的看不懂。。