批量创建PSModulePath上的文件

时间:2016-05-28 17:28:34

标签: powershell batch-file cmd module

我目前正在尝试编写一个批处理程序,在正确的位置安装名为SetConsolePath.psm1的模块。我是Batch的初学者,我绝对没有PowerShell经验。

通过互联网,我学会了如何使用PSModulePath显示powershell -command "echo $env:PSModulePath

如何通过.bat文件将SetConsolePath.psm1从桌面移至powershell -command "echo $env:PSModulePath显示的位置?

提前谢谢你,我为自己缺乏经验而道歉。

1 个答案:

答案 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"