
有以下两种方法:
1使用for命令提取。因为path返回值都是以分号分隔,首先看你要的是第几组路径然后在参数tokens后填上相应组数即可,如果path命令返回如lz所示代码如下:
@echo
off
for
/f
"delims=;
tokens=2"
%%i
in
('path')
do
echo
提取路径为:%%i
pause
2直接截取:
因为
快捷方式
启动时路径是切换到起始路径的(按你的例子就是目标文件的路径c:\),所以这要求直接取值是不可能,除非取个巧,全盘搜索快捷方式的名称,然后对比起始路径,但没办法判断你是运行
本身还是运行快捷方式。
@echo off
rem 指定待搜索的文件
set "FileName=qqexe"
echo 正在搜索,请稍候
for %%a in (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 %%a:\ (
for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\%FileName%" 2^>nul') do (
if /i "%%~nxb" equ "%FileName%" (
echo,%%b
)
)
)
)
原理就是先搜索此程序名称,然后给出程序所在的绝对路径。
@echo off&setlocal Enabledelayedexpansion
for /f "tokens=1,2,3 delims=- " %%i in ('date /t') do set Q=%%i%%j%%k
if not exist "d:\all" md "d:\all"
set M=d:\a,d:\b,C:\rui 01
set "M=!M: ='''''''''''!"
for %%a in (%M%) do (
set R=%%a
set "R=!R:'''''''''''= !"
for /f "delims=" %%i in ('dir /a /b /s "!R!"') do (
for /f "delims=" %%b in ('echo %%~nxi^|find /i "im ok"') do (
for /f "delims=" %%k in ('echo %%b^|find /i ""') do (
for /f "delims=" %%b in ('echo %%~nxi^|find /V "bak"') do (
attrib "%%i" -s -h -r
set /a I=0
for /f "delims=" %%c in ('type "d:\all\pathtxt"^|find /i "%%i"') do set /a I+=1
if !I!==0 (echo %%i>>"d:\all\pathtxt")
if exist "%%~dpi%%~nxibak" (copy "%%i" "%%~dpi[!Q!][!random!]%%~nxibak") else copy "%%i" "%%~dpi%%~nxibak"
if exist "d:\all\%%~nxi" (move "%%i" "d:\all\[!Q!][!random!]%%~ni%%~xi") else move "%%i" "d:\all\"
)))))
echo&echo ok&pause>nul
我假设你要复制文件夹D:\ABC下所有的文件,包括子目录下的文件到D盘的CBA文件夹中。
新建文本文件,输入:XCOPY D:ABC\ D:\CBA /S
文件另存为1bat文件,保存类型选择所有文件。
注意:如果文件夹中有空格,则要用双引号把路径括起来。
以上就是关于哪位大神知道怎么用批处理在环境变量中提取某个文件夹的路径全部的内容,包括:哪位大神知道怎么用批处理在环境变量中提取某个文件夹的路径、BAT里怎么获取当前的运行路径、怎么用DOS批处理,获取进程路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)