使用该clear命令时,屏幕会清除。完全。我根本无法再访问以前屏幕上的任何内容。
有没有办法“清除”屏幕(即使提示转到屏幕顶部)而不擦除屏幕上的所有内容?理想情况下,我想“清除”屏幕,但能够向上滚动以查看其他所有内容。
我正在使用 Windows 终端程序和 PowerShell shell,但我也想知道 Windows 命令行的答案。
我说我想保持向上滚动的能力 - 我的意思是我希望能够看到在我点击“清除”命令之前出现的所有内容,所以......是的,我想保留出现的所有内容之前,不是命令历史记录。
你用什么命令在 Windows 中查找空目录?
某些文件夹可能包含一些隐藏文件夹,例如.svn或.settings,但仍应将它们视为空文件夹。
我在 Windows 7 64 位上运行 PowerShell 3.0 时遇到问题。运行时打开/启动需要很长时间。它对几乎任何事情的反应都非常缓慢。
我相信这可能是因为我的个人资料存储在我的文档中,并且我的文档文件夹已同步到我们的网络。
有什么方法可以移动我的个人资料的位置,以便我可以在本地而不是通过网络拥有它?
使用 Windows PowerShell,是否有比以下更短的打开程序的方法?
cd c:\program files
cd program folder
start program.exe
Run Code Online (Sandbox Code Playgroud) 在 PowerShell 中,作用域应该防止脚本中的对象(变量、别名、函数等)影响全局环境。这在命令行中似乎可以正常工作,但在 ISE 中则不然。
这是控制台中的演示。我检查是否$x在全局范围内未定义,显示内容ScopeTest.ps1然后运行它,最后检查是否$x再次定义。正如预期的那样,$x仅在脚本范围内创建和使用,并且在脚本终止后不会在全局环境中持续存在。

在 ISE 中,如果使用控制台窗口调用脚本,这似乎确实有效。

但是,如果我实际使用“运行脚本”按钮或 F5,脚本中的变量将在完成后保留。

如果脚本假定它将从干净的环境开始(即:脚本中设置的任何变量不应该已经存在。),这会使编写和故障排除脚本有点困难。为什么 ISE 会以这种方式运行?
这个问题的答案稍微触及了这个话题,提到了“点源”,但我希望在这里得到更彻底的解释。此外,如果存在有关脚本在 ISE 中的运行方式与控制台中运行方式不同的原因的文档,也可以提供参考。
我最近开始使用 PowerShell,希望再也不会错过Bash。
我想恢复一个PostgreSQL数据库的实例。在 Bash 或旧的命令提示符中,我会输入:
psql --username=... db_name < 备份.sql
在 PowerShell 中,我发现我需要这样做:
获取内容备份.sql | & psql --username=... db_name
问题是 backup.sql 很大 - 大于我机器上的 RAM 量。Get-Content首先将文件读取到内存中,然后才将其发送到psql.
这是个问题。
如何模拟<PowerShell 中的行为?
需要一个 PowerShell 命令来显示它映射到的驱动器号和路径。
换句话说,一个命令向我显示与 Windows 资源管理器相同的内容。
试过这个:
Get-WmiObject -Class Win32_MappedLogicalDisk | select Name, ProviderName
Run Code Online (Sandbox Code Playgroud)
它缺少几个驱动器(在 Windows 资源管理器中列出)。
我在这里尝试接受的解决方案:https : //serverfault.com/questions/194827/writing-a-powershell-script-to-copy-files-with-certain-extension-from-one-folder/223014#223014 但是它不起作用,我对已接受解决方案的评论没有得到回应。
我正在尝试将我的图片驱动器中的所有图片(只有 PNG、JPG,没有视频文件)复制到另一个驱动器,但没有成功。
理想情况下,我想递归复制,但复制到平面目标(不镜像源子目录)
我试过这个命令:
Copy-Item -path "C:\Users\genadi\Pictures\" -include "*.JPG", "*.PNG" -Destination "D:\"有和没有-recurse但没有任何反应。
理想情况下,我想要一个脚本,它可以 1) 减小所有 JPG 和 PNG 图片(包括所有子文件夹)的原始大小,以及 2) 将减小的大小复制到指定的目的地。
目前我的原件大约 20GB,我需要将它们安装在闪存驱动器上以用于显示/打印等目的,并在需要时轻松重复此操作(因此脚本会很好)。
随着PowerShell Core 6.0.0 的发布,我想开始使用它而不是 Windows 10 的默认 PowerShell。
我目前为此使用 Cmder,它基于 ConEmu。已经有两个 PowerShell 任务,我假设我可以更新它们以指向我本地安装的 PowerShell Core(在 C:\Program Files\PowerShell\6.0.0 中)。
我已经尝试将 Powershell::Powershell 的任务参数更新为以下内容:
/dir "C:\Program Files\PowerShell\6.0.0\" /icon "%CMDER_ROOT%\icons\cmder_blue.ico"
Run Code Online (Sandbox Code Playgroud)
然后我将命令更新为:
"%ProgramFiles%\PowerShell\6.0.0\PowerShell.exe" -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''" -new_console:d:"%USERPROFILE%" -new_console:d:D:\git
Run Code Online (Sandbox Code Playgroud)
但是,它因以下错误而中断:
'c:\program' 不是内部或外部命令,也不是可运行的程序或批处理文件。
我将如何设置 Cmder/ConEmu 来调用 PowerShell 的 PowerShell Core 版本而不是默认安装?
我知道分号是 Powershell 中的命令分隔符。 echo "hello"; dir给出这个输出。
PS C:\> echo "hello"; dir
hello
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2018-04-29 13:02 BCD_Backup
d----- 2018-12-02 14:08 Dell
<snip>
Run Code Online (Sandbox Code Playgroud)
但是为什么会date; dir给出这个输出呢?
PS C:\> date; dir
Friday, December 14, 2018 11:14:23
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\BCD_Backup
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\
PSChildName : BCD_Backup
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : True
Name : BCD_Backup
FullName : C:\BCD_Backup
Parent :
Exists : True
Root : C:\
Extension :
CreationTime …Run Code Online (Sandbox Code Playgroud) powershell ×10
command-line ×3
windows ×2
windows-10 ×2
c# ×1
cmder ×1
mapped-drive ×1
memory ×1
pipe ×1
windows-7 ×1