7

我刚刚下载了 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.

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

4

2 回答 2

6

简而言之,ISE 不支持交互式控制台应用程序(请参见下面的链接)。作为一种解决方法,您可以通过首先使用测试路径检查文件是否存在来“防止”复制项覆盖文件。

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

于 2009-11-21T20:39:00.913 回答
1

为什么要使用 PowerShell ISE 中的 XCOPY?使用 Copy-Item 代替:

Copy-Item -Path c:\tmp\tmp.txt -Destination c:\tmp\sub

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

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

于 2009-11-20T20:55:20.567 回答