以下工作在iTerm 2中打开两个选项卡.
我似乎无法弄清楚如何使用拆分窗格来改变它.
我试过应用我在几个论坛上看到的东西,但它永远不会奏效.有人能指出我正确的方向吗?
osascript <<-eof
tell application "iterm"
set myterm to (make new terminal)
tell myterm
launch session "Default session"
tell the last session
set name to "Server"
write text "cd $projectsFolder"
end tell
launch session "Default session"
tell the last session
set name to "Console"
write text "cd $projectsFolder"
end tell
end tell
end tell
eof
Run Code Online (Sandbox Code Playgroud) 我有这个查询扫描所有逻辑磁盘信息:
Write-Host "Drive information for $env:ComputerName"
Get-WmiObject -Class Win32_LogicalDisk |
Where-Object {$_.DriveType -ne 5} |
Sort-Object -Property Name |
Select-Object Name, VolumeName, VolumeSerialNumber,SerialNumber, FileSystem, Description, VolumeDirty, `
@{"Label"="DiskSize(GB)";"Expression"={"{0:N}" -f ($_.Size/1GB) -as [float]}}, `
@{"Label"="FreeSpace(GB)";"Expression"={"{0:N}" -f ($_.FreeSpace/1GB) -as [float]}}, `
@{"Label"="%Free";"Expression"={"{0:N}" -f ($_.FreeSpace/$_.Size*100) -as [float]}} |
Format-Table -AutoSize
Run Code Online (Sandbox Code Playgroud)
输出是:

但是 - 我正在查看物理磁盘信息及其分区/卷信息:
所以 - 对于物理磁盘我有这个命令:
Get-Disk
结果:

题 :
我想在这两个命令之间进行组合.我想看到磁盘,并在每个磁盘下面 - 它的逻辑磁盘信息:
>其逻辑磁盘信息.....>这是逻辑磁盘信息.....>这是逻辑磁盘信息.....如何在这两个查询之间进行组合?
在ms上,从node.js代码开始,如何c:\documents在Windows文件浏览器中打开特定目录(例如:)?
我想在c#中,它会是:
process.Start(@"c:\test")
Run Code Online (Sandbox Code Playgroud) 我们正在使用Windows 2012 Server R2.
我们正在尝试自动创建LetsEncrypt证书.我们正在使用LetsEncrypt-Win-Simple(https://github.com/Lone-Coder/letsencrypt-win-simple).
一旦创建了证书(通过LetsEncrypt.exe),我们就会调用一个.bat脚本(使用--script和--scriptparameters标志).这将运行powershell.exe并尝试创建必要的IIS绑定..bat文件中的行是:
powershell.exe -file c:\temp\SSLIISBinding.ps1 %1 %2 %3 %4
Run Code Online (Sandbox Code Playgroud)
%1-4是LetsEncrypt传入的args.在powershell脚本中,我们尝试运行的命令是:
$iis_host_name = $args[0]
$iis_site_name = $args[1]
$certificate_hash = $args[2]
$certificate_store = $args[3]
"IIS Host Name: " + $iis_host_name
"IIS Site Name: " + $iis_site_name
"Certificate Hash: " + $certificate_hash
"Certificate Store: " + $certificate_store
$guid = [guid]::NewGuid().ToString("B")
netsh http add sslcert hostnameport="${iis_host_name}:443" certhash=$certificate_hash certstorename=$certificate_store appid="$guid"
New-WebBinding -name $iis_site_name -Protocol https -HostHeader $iis_host_name -Port 443 -SslFlags 1
Run Code Online (Sandbox Code Playgroud)
args传入.bat罚款,因为我们输出它们并且它们正确显示.
如果我们自己运行.bat文件,它就能完美运行.如果它被LetsEncrypt.exe调用则失败,报告以下问题:
New-WebBinding : Cannot retrieve the dynamic …Run Code Online (Sandbox Code Playgroud) 在powershell中使用7z解压缩文件的命令是什么?
set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"
sz x $zipfilePath $destinationUnzipPath -aoa -r;
Run Code Online (Sandbox Code Playgroud)
该命令工作正常,但它说没有要处理的文件,一切正常而不是解压缩文件?
我目前有一个脚本可以ping服务器并检查每台服务器上运行的服务的状态.
我使用Out-File保存输出,但PowerShell在长字符串后放置省略号或"...".我不希望它这样做.例如:
MachineName ServiceName Status StartType
----------- ----------- ------ ---------
SrvGtw01 Test.MyService.... Running
Run Code Online (Sandbox Code Playgroud)
我希望它显示如下全名:
MachineName ServiceName Status StartType
----------- ----------- ------ ---------
SrvGtw01 Test.MyServiceName.Here Stopped Disabled
Run Code Online (Sandbox Code Playgroud)
我一直在阅读你可以设置$FormatEnumerationLimit偏好变量-1,我已经尝试过,但它没有用.我不确定如何将它放在我的脚本中.
Docker版本18.03.1-ce,build 9ee9f40
我正在使用PowerShell在Windows上构建一个大项目.
发出命令时
docker save docker.elastic.co/kibana/kibana > deploy/kibana.docker
Run Code Online (Sandbox Code Playgroud)
我得到一个文件1.4Gb.
在CMD中运行的相同命令产生799Mb图像.
在bash中运行的相同命令产生799Mb图像.
CMD和Bash只需不到一分钟的时间来保存图像,而Powershell大约需要10分钟.
我无法在docker或MS docs中找到这种现象的正常解释.
现在"解决方案"是
Write-Output "Saving images to files"
cmd /c .\deploy-hack.cmd
Run Code Online (Sandbox Code Playgroud)
但我想找到实际的根本原因.
使用此代码,我打开 excel(使用visible = false,以便用户看不到它),写入工作簿,然后在脚本结束后打开 excel(使其可见)或完全关闭它而不保存。当我保存 Excel、使其保持打开状态、结束脚本,然后稍后手动关闭 Excel 时,任务管理器中没有后台进程。但是,当我使用脚本关闭 Excel 时,它仍保留在任务管理器中。
以下是我开始使用 Excel 的方法:
$script:excel = new-object -ComObject excel.application # create excel object
$excel.visible = $false # hide excel window
$script:workbook = $excel.Workbooks.Add() # add excel file
$script:ws1 = $workbook.Worksheets.Item(1) # create new sheet
Run Code Online (Sandbox Code Playgroud)
这是我关闭它的方法:
[gc]::Collect()
[gc]::WaitForPendingFinalizers()
if ($script:closeOnX) {
#only do this if not keeping excel open
Write-Host "Closing Excel"
$excel.Quit()
}
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel)
Run Code Online (Sandbox Code Playgroud)
closeOnX 只是一个标志,因此它仅在某些情况下实际关闭 Excel 应用程序。其余部分在每次脚本结束时执行。
当我结束脚本并同时关闭 Excel 时,我只想关闭当前的 Excel 进程(这就是我不想停止进程的原因),而不关闭用户可能正在处理的其他工作簿。
当我结束脚本、保存并打开 Excel 时,我希望当用户手动关闭 Excel 时所有进程都消失。(这是工作)
尝试执行选择对象,但我似乎无法从键值列表属性返回属性和值。我希望从此参数属性返回 RunStart、Message 和“tableName”3 个属性。
我对此感到太多了:
|Select-Object -Property Parameters,RunStart,Message
Parameters RunStart Message
---------- -------- -------
{[tableName, AHROR012], [schemaName, dbo]...} 11/14/2019 5:39:06 PM Operation on target failed
Run Code Online (Sandbox Code Playgroud)
但当我这样做时,我没有收到 RunStart 或消息:
|Select-Object -ExpandProperty Parameters -Property tableName,RunStart,Message
Key Value
--- -----
tableName AHROR012
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能得到:
Parameters.tableName RunStart Message
---------- -------- -------
AHROR012 11/14/2019 5:39:06 PM Operation on target failed
Run Code Online (Sandbox Code Playgroud)
谢谢!!!
根据维基百科, NTFS 允许使用不同大小写的两个相似名称(如 Readme.txt 与 readme.txt),并且只能由 windows 文件 API 阻止。
当前的 Windows 文件系统,如 NTFS,区分大小写;即 readme.txt 和 Readme.txt 可以存在于同一目录中。但是,Windows 应用程序中用于文件访问的 API 不区分大小写,这使得从应用程序的角度来看文件名不区分大小写。因此,应用程序只能访问文件名只是大小写不同的文件之一,如果提供的文件名不明确,某些命令可能会失败
来自 Linux,我问自己这两个文件存在的可能性是什么,并且一个人只能访问其中一个文件,这使其成为安全的理想问题。“Windows API”是什么意思。还有其他方法可以访问那些重复的文件吗?可以直接使用磁盘驱动程序(格式化驱动程序)访问文件系统吗?
powershell ×7
windows ×3
filesystems ×2
7zip ×1
applescript ×1
batch-file ×1
cmd ×1
com ×1
docker ×1
drive ×1
excel ×1
formatting ×1
iis-8 ×1
iterm ×1
lets-encrypt ×1
node.js ×1
ntfs ×1
osascript ×1
rcw ×1
terminal ×1