我正在尝试递归获取文件夹的子项。但是该文件夹包含噪声文件和文件夹(实际上,这是一个 Visual Studio 项目文件夹)。
这是我所拥有的:
$root = Get-Item C:\Projects\MyProject
$allItems = Get-ChildItem $root -Recurse -exclude "**\pkgobj\*"
Run Code Online (Sandbox Code Playgroud)
但是,$allItems仍然包含与路径匹配的文件和文件夹。
我做错了什么?
更准确地说,我想同时获取文件夹和文件,而不是指定的文件夹及其任何后代。
我也试过:
foreach($item in $allItems){
if($item.FullName -notmatch "pkgobj") {
Write-Host -ForegroundColor Green $item.FullName.Replace($root,'')
}
}
Run Code Online (Sandbox Code Playgroud)
但没有更多的成功
我想为我的 Windows 8.1 (x64) 计算机下载此版本的 OpenVPN 客户端:
但是,我找不到官方链接。
在OpenVPN 下载页面上,仅提供 OpenVPN GUI。
如果我用谷歌搜索下载链接,我只能找到我不信任的外部下载(如软件通知、CNet 下载等)。
这个客户端的官方下载页面在哪里?
我想使用 Windows 资源管理器搜索框来搜索多种文件类型。
是否有任何受支持的语法可以这样做?
我试过:
*.docx *.xlsx
*.docx, *.xlsx
*.docx; *.xlsx
*.docx or *.xlsx
*.docx | *.xlsx
Run Code Online (Sandbox Code Playgroud)
但这些都不起作用(同时*.docx或*.xlsx单独起作用)
在 PowerShell 脚本中,我想在删除文件夹之前压缩文件夹。我运行以下(我不记得我在哪里找到的代码段):
function Compress-ToZip
{
param([string]$zipfilename)
if(-not (test-path($zipfilename)))
{
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(Get-ChildItem $zipfilename).IsReadOnly = $false
}
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
foreach($file in $input)
{
$zipPackage.CopyHere($file.FullName)
}
}
Run Code Online (Sandbox Code Playgroud)
此代码段实际上压缩了文件夹,但以异步方式进行。实际上,Shell.Application 对象的 CopyHere 方法开始压缩并且不等待其完成。我的脚本的下一个语句然后搞砸了(因为 zip 文件过程没有完成)。
有什么建议?如果可能的话,我想避免添加任何可执行文件并继续使用纯 Windows 功能。
[编辑] 我的 PS1 文件的全部内容减去数据库的实际名称。该脚本的目标是备份一组 SQL 数据库,然后将备份压缩在一个以当前日期命名的文件夹中的单个包中:
$VerbosePreferenceBak = $VerbosePreference
$VerbosePreference = "Continue"
add-PSSnapin SqlServerCmdletSnapin100
function BackupDB([string] $dbName, [string] $outDir)
{
Write-Host "Backup de la base : $dbName"
$script = "BACKUP …Run Code Online (Sandbox Code Playgroud) 我在公司环境中使用 Microsoft Teams。
我有一个带有播放/暂停按钮的多媒体键盘(Logitech MX 键,如果重要的话)。
当我按下按钮时,它会触发 Microsoft Teams 铃声(即使没有处于活动状态的通信)。弹出窗口包含Microsoft Teams Notification:
提示中的右键将我带到我的实际多媒体应用程序(Deezer Windows 10 应用程序)。
如何避免 MS Teams 被注册为多媒体应用程序?不确定有关此 Windows 功能的幕后情况。
PS:我的系统是Windows 10 x64 20H2专业版。MS Teams 在发布渠道中(我猜)
我的电脑运行的是 Windows 8 X64 Enterprise。
我有两个分区,C(系统)和 D(数据)。两者都是位锁定的。
我想缩小我的 D 分区(为了创建一个新分区)。使用磁盘管理管理单元,我选择了收缩选项。这个工具允许我将分区的大小减小到某个点,这应该是最后一个不可移动的文件,即使仍有大约 100 GB 的可用空间。
在事件查看器中,我有一个条目说明最后一个不可移动的文件是什么。这是 :
\?\Volume{cac39fe5-6ea3-11e2-be6a-2016d893ea2f}\System Volume Information\FVE2.{e40ad34d-dae9-4bc7-95bd-b16218c10f72}.3::$DATA
按照建议,运行该fsutil命令会产生以下输出:
PS C:\> fsutil volume querycluster "\\?\Volume{cac39fe5-6ea3-11e2-be6a-2016d893ea2f}" 0x3a998b7
Cluster 0x0000000003a998b7 utilisé par ---AD \System Volume Information\FVE2.{e40ad34d-dae9-4bc7-95bd-b16218c10f72}.3::$DATA
Run Code Online (Sandbox Code Playgroud)
经过一番搜索,我发现System Volume Information是系统保护使用的。所以我禁用了它并重新启动了计算机。
不幸的是,该文件仍然存在并且不允许我缩小此文件位置上方的分区。
我尝试了一些碎片整理软件(Defraggler 和 MyDefrag),但它们都无法移动这些文件,事件使用启动时碎片整理。
我怎样才能真正摆脱这些文件?我怎样才能真正缩小这个文件上方的分区?
我有一台带有标准单 SATA 驱动器的标准台式计算机。
我在某些应用程序中遇到了很多滞后,可能是因为磁盘(队列通常 > 10)。
有没有办法降低一些现有非重要进程的 I/O 优先级(以同样的方式我可以降低这些进程的 CPU 优先级)?
我有一个 csv 文件,如下所示:
Ref;Code;OtherData;
"MyRef";"-arm";"something";
Run Code Online (Sandbox Code Playgroud)
我认为这个表格是有效的,不是吗?
当我在 Excel 中打开文件时,Excel 将“-arm”解析为公式。如何强制 Excel 以纯文本形式读取值?
如果需要,我可以更改 CSV 格式。
PS:不要让我添加前导'. 我不想调整特定应用程序的值,因为其他应用程序仍然必须能够读取该值。
假设我有这个功能:
function Foo{
[CmdLetBinding()]
param(
[Parameter(Mandatory=$true,ParameterSetName="A",Position=0)]
[Parameter(Mandatory=$true,ParameterSetName="both",Position=0)]
[int]
$A,
[Parameter(Mandatory=$true,ParameterSetName="B",Position=0)]
[Parameter(Mandatory=$true,ParameterSetName="both",Position=1)]
[int]
$B
)
Write-Host $PsCmdlet.ParameterSetName
}
Run Code Online (Sandbox Code Playgroud)
我希望这种方法可以期待 A 或 B 或两者兼而有之。从来没有。
但是,如果我称之为:
Foo -A 1 -B 2 # outputs "both" as expected
Foo -B 3 # error
Foo -A 4 # error
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Foo : Parameter set cannot be resolved using the specified named parameters.
At c:\pathto:75 char:4
+ Foo <<<< -B 3
+ CategoryInfo : InvalidArgument: (:) [Foo], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Foo
Foo : Parameter set cannot …Run Code Online (Sandbox Code Playgroud) 我正在尝试备份我当前用户的 AppData 文件夹。
因为文件夹很大,我想用robocopy.
然而,robocopy 正在处理符号链接。
特别是,在用户文件夹中,有一个符号(我猜)链接Application data指向Roaming文件夹。
另外还有中Local的文件夹,命名为“应用程序数据”,它指向另一个链接local文件夹。这以递归无限循环local\application data\application data\application data等结束,每次复制整个local文件夹。
我尝试将/sl开关添加到 robocopy,但没有成功。
如何正确复制我的用户文件夹?
powershell ×3
backup ×2
windows ×2
bitlocker ×1
csv ×1
database ×1
defragment ×1
keyboard ×1
multimedia ×1
openvpn ×1
partitioning ×1
performance ×1
resizing ×1
robocopy ×1
search ×1
windows-8 ×1
windows-8.1 ×1
zip ×1