如何确定正在运行脚本的文件夹的路径

如何确定正在运行脚本的文件夹的路径,第1张

-- PD答:您好,PD。您知道,对于脚本专家,此问题(同我们所收到的许多问题一样)被我们归到了“为什么我们没有想到”类别之下。脚本专家将花费大量的时间测试脚本,包括由 Windows 脚本编写社区成员所提交的脚本。(嗯,将会有一位脚本专家花费大量时间测试众多脚本。请注意,即使他必须做这里几乎所有的工作,他也不会抱怨。[编者注:包括大多数抱怨。])其中的许多脚本将向某个文件夹添加文件或从该文件夹删除文件,或者将信息写入该文件夹中的日志文件(该脚本本身就在该文件夹中)。这意味着我们经常需要使用 Windows 资源管理器打开脚本的主文件夹。我们如何打开该文件夹呢?嗯,双击我的电脑、双击 C:、双击 Scripts 等等。我们从来没有想过使用脚本来为我们打开文件夹。Set objShell = CreateObject("WscriptShell")strPath = WscriptScriptFullNameSet objFSO = CreateObject("ScriptingFileSystemObject")Set objFile = objFSOGetFile(strPath)strFolder = objFSOGetParentFolderName(objFile)strPath = "explorerexe /e," & strFolderobjShellRun strPath正如您所看到的,这个脚本不是特别复杂。首先创建一个 WscriptShell 对象的实例;稍后会使用这个对象启动 Windows 资源管理器。然后使用下面这行代码获取运行脚本的完整路径(例如 C:\Scripts\My_scriptvbs):strPath = WscriptScriptFullName进行下一步之前,要马上澄清一下。有些人可能想知道我们为什么不使用 CurrentDirectory 属性来确定脚本的当前目录。本来可以,但有一个问题:脚本的当前目录与其运行时所在的文件夹不一定相同。毕竟,您可以轻松地启动 C:\Scripts 中的一个脚本,然后将当前目录更改为 C:\Test。对于此专栏,我们需要脚本所驻留的文件夹的名称。如果您更愿意获取当前目录,则请使用下面的这个脚本:Set objShell = CreateObject("WscriptShell")strPath = objShellCurrentDirectorystrPath = "explorerexe /e," & strPathobjShellRun strPath现在,回到我们的原始脚本。将脚本的完整路径存储到变量 strPath 中之后,我们会创建 ScriptingFileSystemObject 的实例。接下来我们将使用以下两行代码:Set objFile = objFSOGetFile(strPath)strFolder = objFSOGetParentFolderName(objFile)此时,我们已拥有此脚本文件本身的路径:C:\Scripts\My_scriptvbs。很好,但我们真正需要的是去掉文件名而仅保留文件夹路径:C:\Scripts。尽管有几种不同的方法可以达到此目的,但是我们认为下面的方法最为简单。此时我们所要做的是使用 GetFile 方法绑定到文件 C:\Scripts\My_scriptvbs(请注意我们是如何将变量 strPath 作为单独的参数传递给 GetFile 的)。连接到该文件之后,我们便可以使用 GetParentFolderName 方法获取文件所驻留的文件夹的完整路径;不用说,它恰好是 C:\Scripts。这也恰好是我们想要打开的那个文件夹。剩下的就很容易了。在将脚本文件夹路径安全地放到变量 strPath 中之后,我们便可使用下面这行代码来构造一个命令行字符串,该字符串将打开 Windows 资源管理器窗口(该窗口的焦点设置为 C:\Scripts):strPath = "explorerexe /e," & strPath现在,剩余的全部工作就是调用 Run 方法,以传递我们刚刚构造的命令行字符串:

$(pwd)和`pwd`效果是一样的,返回的是当前的路径

${0}返回的是脚本与当前路径的相对路径

所以

echo $(pwd)/${0}

就是脚本的绝对路径了

你执行下这个脚本就明白了

#!/bin/bash -x

echo ${0}

echo $(pwd)

echo $(pwd)/${0}

方法很多的啊在脚本中直接使用写一条pwd命令查看当前目录名称把它存到文本中就可以了或者在脚本中你可以find

/

-name

xxx

|

grep

xxx就可以得到该脚本的绝对路径

以上就是关于如何确定正在运行脚本的文件夹的路径全部的内容,包括:如何确定正在运行脚本的文件夹的路径、Shell脚本中如何获取软链接的地址、如何在脚本中实现自动获取本脚本的绝对路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9506419.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存