Batch file *.bat将路径文件夹另存为变量

Batch file *.bat将路径文件夹另存为变量,batch-file,cmd,jscript,Batch File,Cmd,Jscript,我试图在*.bat中使用一个小工具,但我没有找到我想要的答案。 这个想法是通过双击脚本,弹出一个窗口来选择一个文件夹,并将路径文件夹保存为一种“变量”,并将其放入一个字符串中,如下所示。 我想从多个目录和子目录递归解压 @echo off Title unzip_bz2 for /r "%Location%" %I IN (*.bz2) DO 7z x %I -o"%~dpI" 拥有类似于: FOR /R C:\Users\steph\Desktop\my_bz2_file\ %I IN (*

我试图在*.bat中使用一个小工具,但我没有找到我想要的答案。 这个想法是通过双击脚本,弹出一个窗口来选择一个文件夹,并将路径文件夹保存为一种“变量”,并将其放入一个字符串中,如下所示。 我想从多个目录和子目录递归解压

@echo off
Title unzip_bz2
for /r "%Location%" %I IN (*.bz2) DO 7z x %I -o"%~dpI"
拥有类似于:

FOR /R C:\Users\steph\Desktop\my_bz2_file\ %I IN (*.bz2) DO 7z x %I -o"%~dpI"

提前感谢您的建议和帮助。

如果我正确理解您的问题,您可以利用您的帮助完成此任务:


0
cmd
具有返回当前目录的完整路径的
%CD%
。我希望能够选择主目录,无论它位于何处,而不是具体位于其中。在批处理文件中使用
%I
而不是
%I
!此命令与您提供的第一个代码完美配合:
0如果我想在第一次处理之后立即添加命令解压*.tar,我该怎么办?事实上,我正在使用CALL来完成第二步。为什么您要使用我改进的代码,因为可能存在问题,我对其进行了编辑,请尝试上面的代码。为什么要使用
呼叫
?第二步是另一个批处理文件吗?还是同一批文件中的另一个标签<代码>调用
不用于
.exe
文件!另外,我已经回答了你提出的一个不清楚的问题,这个网站不是为你做工作的,它的目的不是为每个帖子多个问题。您或者需要一个符号来分隔
Do
命令,或者将它们插入括号并用新行分隔。我保留了第一个代码,因为它非常适合我的环境。:-)我通常在Linux环境下开发东西已经超过15年了,但今天我被要求在“Windows”下完成同样的任务。尽管我读了很多书,但我还是很难理解“batch”语法,因此我很难把问题问清楚。我不要求任何人做我的工作,但要求社区帮助,谁比我有更多的经验,在使用批处理。。。很可能是我弄错了?是的,我使用“call”为我的治疗增加了第二步。第一个代码得到了改进,因为它有不必要的部分,并且有一个问题,这意味着它在某些情况下会失败。为了澄清我之前的评论,
调用“file.exe”
是绝对不正确的<代码>调用“batch.file”[args]
调用:BatchFileLabel[args]
,以及
调用内部命令…
是如何使用
调用
命令的。