首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归路径

问递归路径
EN

Stack Overflow用户
提问于 2011-04-08 01:28:13
回答 2查看 8.1K关注 0票数 7

我试着在谷歌上搜索这个,并没有真正学到任何东西,因为搜索结果通常与其他递归主题有关。我想知道的是,如果文件夹在路径中,它是递归定义的(在Windows上)吗?

我想创建一个C:\StandalonePrograms并将其添加到path中。它将包含一堆编程语言和其他程序,这些程序通常来自zip文件。我想知道,如果将程序目录添加到其中,是否可以调用所有程序。

例如,如果我有C:\StandalonePrograms\SomeProgram,我可以打开一个命令提示符,输入someCommand并期望它从C:\StandalonePrograms\SomeProgram\bin文件夹运行吗?

或者我需要在我的路径中显式地定义C:\StandalonePrograms\SomeProgram\bin?

如果我做不到,有没有什么变通办法来达到我想要的情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-08 01:31:05

您需要单独指定每个目录,路径机制不会遍历子目录。

解决方法可以是一个充满批处理文件(某种类型)的目录,这些文件以完整路径启动真正的工具

票数 8
EN

Stack Overflow用户

发布于 2017-08-26 10:47:26

这里有一个解决方法。将其另存为"SetMyPath.bat“(或使用其他名称):

代码语言:javascript
复制
@echo off
set dir=%*
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir /s /ad /o:d /b "%dir:"=%"') do set path=%%i;!path!
cmd

(在这里,"%dir:"=%"只允许您在调用此文件时省略名称中包含空格的目录两边的引号。如果您不需要这样做,那么%1可以代替它。)

这个文件有一个命令行参数:目录。它将启动一个新的cmd.exe副本,其中给定目录下的文件将可用:

代码语言:javascript
复制
C:\> mysqldump.exe
File not found.
C:\> SetMyPath.bat C:\Program Files\MySQL
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\> mysqldump.exe
Usage: mysqldump [OPTIONS] database [tables]
C:\> exit

在本例中,第一个命令显示mysqldump.exe不在路径上。执行批处理文件后,将启动一个新的cmd.exe,其中提供了mysqldump.exe。当您使用完它时,exit会返回到cmd.exe的原始副本。

如果在不同的子目录下有.exe文件的两个副本,将启动最近更新目录中的副本(由于/o:d)。在此示例中,假设最后更新了最新版本的MySQL的目录,则将启动最新版本的mysqldump.exe。

可以对批处理文件进行修改,以保证启动.exe的最新副本(如果需要,请在注释中向我询问)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5585109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档