我正在尝试做类似的事情, 我必须使用powershell Invoke -WebRequest cmdlet下载一些文件,我在我的hardrive中的“myscript.ps1”文件中编写了脚本 现在我想通过创建一个用于在Powershell中调用powershell文件的批处理文件,使用cmd在Powershell中调用并执行此文件 我该怎么办?
答案 0 :(得分:0)
我不是故意粗鲁但是你看到了这一点吗?或者首先搜索Stackoverflow的类似问题?看来你要问的是如何运行PowerShell脚本。我用Google搜索了这个,并得到了几个关于这个主题的非常好的指南。
根据环境的不同,这可能不是您想要做的,因为您基本上是在关闭未经授权的脚本的安全性。
http://windowsitpro.com/powershell/running-powershell-scripts-easy-1-2-3
答案 1 :(得分:0)
如果您只想下载文件,则无需使用.ps1文件 例如,要下载MAC地址供应商列表,我将其批量使用:
if($cat_layout=='masonry-3' || $cat_layout=='masonry-2'){
$postcounter=1;
echo '<div class="module-masonry-wrapper clear-fix">';
echo '<div class="masonry-content-container">';
while(have_posts()){
if($postcounter==4){
echo '<div id="adsbetween"><center>YOUR_ADSENSE_CODE</center></div>';
}
the_post();
echo kid_masonry_render(get_the_ID());
++$postcounter;
}
echo '</div>';
echo '</div>';
}
我不会永久性地将$postcounter=1;
echo '<div class="classic-blog-content-container">';
while(have_posts()){
if($postcounter==4){
echo '<div id="adsbetween"><center>YOUR_ADSENSE_CODE</center></div>';
}
the_post();
echo kid_classic_blog_render(get_the_ID(),35);
++$postcounter;
}
echo '</div>';'
更改为powershell -nop -command "iwr \"http://standards-oui.ieee.org/oui.txt\" -Outfile \"%temp%\oui.txt\""
,使用ExecutionPolicy
或在上述命令中包含unrestricted
。
答案 2 :(得分:0)
出于调试目的,保持提升的PowerShell窗口打开以查看所有输出流(特别是警告和错误)。
为此,请使用-NoExit
参数
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoExit -NoProfile -ExecutionPolicy Bypass -File ""D:\myscript.ps1""' -Verb RunAs}"
或pause
代理-Command ""D:\myscript.ps1;pause""
-File ""D:\myscript.ps1""
请注意,如果PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -Command ""D:\myscript.ps1;pause""' -Verb RunAs}"
文件不存在,上述任何方法都无济于事。此外,在调用脚本中发生终止错误的情况下,我不确定D:\myscript.ps1
方法的有效性。
答案 3 :(得分:0)
无需将Powershell作为单独的进程启动。只需用&amp;执行脚本即可pathToScript.ps1。以下是下载Powershell脚本并运行它的示例:
$chocoInstallScriptUrl = 'http://.../install/Install.Choco.ps1'
$chocoInstallScript = Join-Path $env:Temp 'Install.Choco.ps1'
Set-ExecutionPolicy Unrestricted
$downloader = New-Object System.Net.WebClient
$downloader.DownloadFile($chocoInstallScriptUrl, $chocoInstallScript)
& $chocoInstallScript