用于使用当前路径位置设置变量的批处理脚本

发布于 2024-11-25 14:55:43 字数 274 浏览 1 评论 0原文

如何设置当前位置的变量?例如,如果我进入 c:\test 并希望将变量设置为 test 并且如果我进入 c:\test\test2 > 变量将被设置为 test2

我正在考虑使用 for 进入很多文件夹并检查某些文件是否存在,如果存在正确的文件我想将当前文件夹设置为变量,以便我可以复制路径并复制该文件夹。

主要问题是将其余文件复制到与 .inf 文件相同的文件夹中。

How can I set a variable with the current location? For instance, if I get in c:\test and want to set the variable to test and if I get inside c:\test\test2 the variable will be set to test2.

I'm thinking about using a for to get inside a lot of folders and check if some file exists, if the correct file exist I want to set the current folder to a variable so I can copy the path and copy the folder.

The main problem deals with copying the rest of the files is the same folder as the .inf file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱情眠于流年 2024-12-02 14:55:43

当前目录位于“shadow”变量 cd 中。
你可以尝试

set "var=%cd%"

The current directory is in the "shadow" variable cd.
You could try

set "var=%cd%"
吝吻 2024-12-02 14:55:43
%~dp0

这扩展到驱动器和当前运行的批处理文件的路径。我通常在我的批处理文件中添加以下内容:

@echo off
pushd %~dp0

...

popd

编辑:看来我不明白OP。我的示例获取当前运行脚本的位置,而不是“当前目录”。 +1 杰布。

%~dp0

This expands into the drive & path of the currently running batch file. I usually surround my batch files with something like:

@echo off
pushd %~dp0

...

popd

Edit: It seems I didn't understand the OP. My example gets the location of the currently running script, not the "Current Directory". +1 to jeb.

青衫负雪 2024-12-02 14:55:43

我认为这里有点混乱。 %CD% 始终拥有当前目录,因此您无需添加任何内容即可拥有它。但是,通过重读您原来的问题,我认为您需要当前目录的最后一部分,即当前位置的名称,不包括所有以前的位置。如果是这样,那么你可以使用这个:

set i=0
:nextdir
set /a i+=1
for /f "tokens=%i% delims=\" %%a in ("%CD%") do if not "%%a" == "" set lastdir=%%a& goto nextdir
echo Current location: %lastdir%

I think there is a little confussion here. %CD% always have the current directory, so you don't need to add anything to have it. However, by rereading your original question, I think that you need the LAST PART of the current directory, that is, the name of the current location excluding all previous locations. If so, then you may use this:

set i=0
:nextdir
set /a i+=1
for /f "tokens=%i% delims=\" %%a in ("%CD%") do if not "%%a" == "" set lastdir=%%a& goto nextdir
echo Current location: %lastdir%
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文