Powershell ISE似乎与交互式命令挂起.

mei*_*rsd 6 powershell-2.0

我刚刚下载了Powershell 2.0,我正在使用ISE.总的来说我真的很喜欢它,但我正在寻找一个解决方法.有很多遗留命令是交互式的.例如xcopy,如果告知用户覆盖文件,则会默认提示用户.

在Powershell ISE中,这似乎悬而未决

mkdir c:\tmp                                                                                       
cd c:\tmp                                                                                          
dir > tmp.txt                                                                                      
mkdir sub                                                                                          
xcopy .\tmp.txt sub # fine
xcopy .\tmp.txt sub # "hang" while it waits for a user response.
Run Code Online (Sandbox Code Playgroud)

第二个xcopy是提示用户允许覆盖C:\ tmp\sub\tmp.txt,但提示不会显示在ISE输出窗口中.我可以从cmd.exe运行这个很好但是ISE有什么用?我怎么知道什么时候需要哪一个?

Sha*_*evy 5

简而言之,ISE不支持交互式控制台应用程序(请参阅下面的链接).作为一种变通方法,您可以通过首先使用test-path检查文件是否存在来"防止"复制项覆盖文件.

http://blogs.msdn.com/powershell/archive/2009/02/04/console-application-non-support-in-the-ise.aspx


Ken*_*ite 1

为什么要使用 PowerShell ISE 中的 XCOPY?使用复制项目代替:

Copy-Item -Path c:\tmp\tmp.txt -Destination c:\tmp\sub
Run Code Online (Sandbox Code Playgroud)

它将覆盖任何现有文件而不发出警告,除非现有文件是隐藏的、系统的或只读的。如果您也想覆盖它们,可以添加该-force参数。

有关详细信息,请参阅 PowerShell ISE 帮助文件中的“使用文件和文件夹”主题,或查看MSDN上的所有命令。