我有一个简单的批处理文件,用于存档tar / gzip格式的文件。我已将批处理文件放在system32中,以便我可以从任何地方访问它。
我使用" shift +右键单击"打开命令窗口。在特定文件夹中,我希望存档文件夹的内容并输入批处理文件的名称(targz.bat
)。批处理文件执行归档/压缩。
问题是我使用绝对路径。我需要一种方法来获取当前目录和当前文件夹的名称。我可以使用%cd%
获取当前目录,但如何获取文件夹名称?
例如:
set currentdir=%cd% "C:\xampp\htdocs\wordpress"
set currentfoldername= should be just "wordpress"
实际代码:
@echo off
cd "C:\Program Files\7-Zip"
7z a -ttar "C:\xampp\htdocs\wordpress\archive.tar" "C:\xampp\htdocs\wordpress\*"
7z a -tgzip "C:\xampp\htdocs\wordpress\archive.tar.gz" "C:\xampp\htdocs\wordpress\archive.tar"
del "C:\xampp\htdocs\wordpress\archive.tar"
exit
所需:
@echo off
set currentdir=%cd%
set currentfoldername=
cd "C:\Program Files\7-Zip"
7z a -ttar "%currentdir%\%currentfoldername%.tar" "%currentdir%\*"
7z a -tgzip "%currentdir%\%currentfoldername%.tar.gz" "%currentdir%\%currentfoldername%.tar"
del "%currentdir%\%currentfoldername%.tar"
exit
答案 0 :(得分:1)
使用~n
修饰符可以轻松获取路径的最后一个元素:
for %%a in (%cd%) do set "currentfoldername=%~na"