我刚刚下载了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有什么用?我怎么知道什么时候需要哪一个?
答案 0 :(得分:5)
简而言之,ISE不支持交互式控制台应用程序(请参阅下面的链接)。作为一种解决方法,您可以通过首先使用测试路径检查文件是否存在来“防止”复制项覆盖文件。
http://blogs.msdn.com/powershell/archive/2009/02/04/console-application-non-support-in-the-ise.aspx
答案 1 :(得分:1)
为什么要使用PowerShell ISE的XCOPY?请改用Copy-Item:
Copy-Item -Path c:\tmp\tmp.txt -Destination c:\tmp\sub
除非现有文件是隐藏的,系统的或只读的,否则它将覆盖任何现有文件而不发出警告。如果您也想覆盖它们,可以添加-force
参数。
有关详细信息,请参阅PowerShell ISE帮助文件中的“使用文件和文件夹”主题,或查看MSDN处的所有命令。