我目前正在尝试编写一个批处理程序,在正确的位置安装名为SetConsolePath.psm1
的模块。我是Batch的初学者,我绝对没有PowerShell经验。
通过互联网,我学会了如何使用PSModulePath
显示powershell -command "echo $env:PSModulePath
。
如何通过.bat文件将SetConsolePath.psm1
从桌面移至powershell -command "echo $env:PSModulePath
显示的位置?
提前谢谢你,我为自己缺乏经验而道歉。
答案 0 :(得分:0)
在回答之前,我必须说您不希望将PowerShell模块文件直接复制到PsModulePath
指向的路径。你真的想在PSModulePath
内创建一个文件夹,然后在那里复制文件。
Powershell变量中的前缀env
表示环境变量。 $env:PSModulePath
实际上是指PSMODULEPATH
环境变量。在命令行和批处理文件中,可以通过将名称放在百分号之间来显示环境变量。 (事实上,您可以通过键入echo %PSMODULEPATH%
来显示此值。)
要引用桌面文件夹,请查看this answer,其中显示了如何使用其他环境变量USERPROFILE
。
因此,要将文件从桌面目录复制到PSModulePath
中指定的路径,您可以这样做:
COPY "%USERPROFILE%\Desktop\SetConsolePath.psm1" "%PSMODULEPATH%"
而且,正如我之前警告的那样,你真的应该将文件复制到PsModulePath
下面的文件夹中。所以你真正想要的是:
IF NOT EXIST "%PSMODULEPATH%\MyNewFolder" MKDIR "%PSMODULEPATH%\MyNewFolder"
COPY "%USERPROFILE%\Desktop\SetConsolePath.psm1" "%PSMODULEPATH%\MyNewFolder"