当前位置: 技术问答>linux和unix
如何在批处理文件中得到当前目录
来源: 互联网 发布时间:2014-11-28
本文导语: 有没有什么关键字是用来表示当前目录的? 例如:windir表示为当前系统的windows目录。 关键字HOMEPATH又有什么用呢? | 想不到你还在动这个脑筋。 好吧,我教你一招。 编辑一个文件叫a.txt,内容是 set cur...
有没有什么关键字是用来表示当前目录的?
例如:windir表示为当前系统的windows目录。
关键字HOMEPATH又有什么用呢?
例如:windir表示为当前系统的windows目录。
关键字HOMEPATH又有什么用呢?
|
想不到你还在动这个脑筋。
好吧,我教你一招。
编辑一个文件叫a.txt,内容是
set curpath=
注意一定不要换行。
然后在你的批处理文件里写下以下几句
copy a.txt a.bat
cd >>a.bat
call a.bat
这样一来就设置了一个环境变量是当前目录,
然后在批处理里面用%curpath%就可以引用当前目录了。
得到当前的根目录也有类似方法啊
先用以上方法做一个模板可以返回当前目录的。比如b.txt写上
cd
然后调用
copy b.txt b.bat
cd >>b.bat
cd
copy a.txt a.bat
cd >>a.bat
call a.bat
rem 这个时候得到根目录的值
call b.bat
rem 还可以返回以前的目录
好吧,我教你一招。
编辑一个文件叫a.txt,内容是
set curpath=
注意一定不要换行。
然后在你的批处理文件里写下以下几句
copy a.txt a.bat
cd >>a.bat
call a.bat
这样一来就设置了一个环境变量是当前目录,
然后在批处理里面用%curpath%就可以引用当前目录了。
得到当前的根目录也有类似方法啊
先用以上方法做一个模板可以返回当前目录的。比如b.txt写上
cd
然后调用
copy b.txt b.bat
cd >>b.bat
cd
copy a.txt a.bat
cd >>a.bat
call a.bat
rem 这个时候得到根目录的值
call b.bat
rem 还可以返回以前的目录
|
可以提取prompt的变量,下面是一个通用的方法:
::getvar.bat
@if [%1]==[invoke] prompt set %2=%3
@if [%1]==[invoke] goto end
@echo off
%comspec% /c %0 invoke %1 %2>tt.bat
call tt
:end
运行时,加上环境变量名和prompt对应变量值即可,如:
getvar curpath $p
::getvar.bat
@if [%1]==[invoke] prompt set %2=%3
@if [%1]==[invoke] goto end
@echo off
%comspec% /c %0 invoke %1 %2>tt.bat
call tt
:end
运行时,加上环境变量名和prompt对应变量值即可,如:
getvar curpath $p
|
cd
可得出當前目錄
cd >1.txt (把当前路径存到1.txt中)
可得出當前目錄
cd >1.txt (把当前路径存到1.txt中)
|
用c吧
dos命令无法实现
echo set current=>>autoexec.bat
cd >>autoexec.bat
则autoexec.bat里多了这两行:
set current=
c:windowsdesktop
如果没有换行符就成功了
当然,可以再写一个c来把这个换行符给去掉就ok了
very easy的
dos命令无法实现
echo set current=>>autoexec.bat
cd >>autoexec.bat
则autoexec.bat里多了这两行:
set current=
c:windowsdesktop
如果没有换行符就成功了
当然,可以再写一个c来把这个换行符给去掉就ok了
very easy的