作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 powershell 脚本,可以将选定的文件复制到预定位置。
我已经创建了一个批处理文件来从 Windows 资源管理器的“发送到”菜单调用 Powershell 脚本。
批处理文件将选定的文件名作为参数发送到脚本。文件名可以包含空格。批处理文件代码为
powershell "C:\copycommand.ps1 '%1'"
选择多个文件时,我想将所有文件名作为数组发送到PowerShell脚本。
我已经编写了 powershell 脚本来接受数组,但我无法从批处理文件中将文件名作为数组发送。
下面的批处理脚本将所有文件名发送到批处理文件,但当文件名包含空格时会失败。
Powershell "C:\copycommand.ps1" %*
有没有一种方法可以将所有文件名发送到 powershell 脚本。
最佳答案
我的bat文件是这样的(最后一行只是为了调试,可以去掉):
@echo off
for %%x in (%*) do (
powershell.exe -Command "C:\copycommand.ps1 '%%x'"
)
powershell.exe -noexit
我的 powershell 脚本是:
$args | %{ Write-host "do copy $_"}
示例输出为:
do copy C:\Users\Public\Desktop\SRWare Iron.lnk
do copy C:\Users\Public\Desktop\Mozilla Firefox.lnk
do copy C:\Users\Piotrek\Desktop\Windows 7 USB DVD Download Tool.lnk
更新版本
将 bat 文件更改为:
@echo off
set myvar=
for %%x in (%*) do call :concat %%x
echo %myvar%
powershell.exe -Command C:\copycommand.ps1 %myvar%
powershell.exe -noexit
goto :eof
:concat
set myvar=%myvar% '%1'
goto :eof
关于powershell - 从 Windows 资源管理器 'Send To' 菜单调用 powershell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15932881/
我是一名优秀的程序员,十分优秀!