标签: powershell

你的PowerShell`profile.ps1`文件中有什么?

您的个人资料中包含哪些基本内容(功能,别名,启动脚本)?

powershell

85
推荐指数
12
解决办法
2万
查看次数

如何在PowerShell中规范化路径?

我有两条路:

fred\frog
Run Code Online (Sandbox Code Playgroud)

..\frag
Run Code Online (Sandbox Code Playgroud)

我可以在PowerShell中将它们连接在一起,如下所示:

join-path 'fred\frog' '..\frag'
Run Code Online (Sandbox Code Playgroud)

这给了我这个:

fred\frog\..\frag
Run Code Online (Sandbox Code Playgroud)

但我不希望这样.我想要一个没有双点的标准化路径,如下所示:

fred\frag
Run Code Online (Sandbox Code Playgroud)

我怎么能得到它?

powershell path

85
推荐指数
6
解决办法
8万
查看次数

如何在双引号字符串中使用对象的属性?

我有以下代码:

$DatabaseSettings = @();
$NewDatabaseSetting = "" | select DatabaseName, DataFile, LogFile, LiveBackupPath;
$NewDatabaseSetting.DatabaseName = "LiveEmployees_PD";
$NewDatabaseSetting.DataFile = "LiveEmployees_PD_Data";
$NewDatabaseSetting.LogFile = "LiveEmployees_PD_Log";
$NewDatabaseSetting.LiveBackupPath = '\\LiveServer\LiveEmployeesBackups';
$DatabaseSettings += $NewDatabaseSetting;
Run Code Online (Sandbox Code Playgroud)

当我尝试使用字符串执行命令中的一个属性时:

& "$SQlBackupExePath\SQLBackupC.exe" -I $InstanceName -SQL `
  "RESTORE DATABASE $DatabaseSettings[0].DatabaseName FROM DISK = '$tempPath\$LatestFullBackupFile' WITH NORECOVERY, REPLACE, MOVE '$DataFileName' TO '$DataFilegroupFolder\$DataFileName.mdf', MOVE '$LogFileName' TO '$LogFilegroupFolder\$LogFileName.ldf'"
Run Code Online (Sandbox Code Playgroud)

它试图只使用值$DatabaseSettings而不是值$DatabaseSettings[0].DatabaseName,这是无效的.
我的解决方法是将其复制到一个新变量中.

如何直接在双引号字符串中访问对象的属性?

powershell string-interpolation

84
推荐指数
5
解决办法
5万
查看次数

使用PowerShell对文件名进行TimeStamp

我有一个字符串中的路径,

"C:\ TEMP\mybackup.zip"

我想在该脚本中插入一个时间戳,例如,

"C:\ temp\mybackup 2009-12-23.zip"

在PowerShell中有一种简单的方法吗?

powershell

84
推荐指数
4
解决办法
24万
查看次数

VSCode更改默认终端

我在Windows 10 PC上使用Visual Studio Code.我想将我的默认终端从Windows PowerShell更改为Ubuntu上的Bash(在Windows上).

我怎样才能做到这一点?

bash terminal powershell cmd visual-studio-code

83
推荐指数
8
解决办法
9万
查看次数

如何将命令行参数传递给PowerShell ps1文件

多年来,我一直使用cmd/DOS/Windowsshell并将命令行参数传递给批处理文件.例如,我有一个文件,zuzu.bat并在其中,我访问%1,%2等等.现在,我想,当我叫做同样的PowerShell脚本when I am in a Cmd.exe shell.我有一个脚本,xuxu.ps1(我已经将PS1添加到我的PATHEXT变量和与PowerShell关联的PS1文件).但无论我做什么,我似乎都无法从$args变量中得到任何东西.它的长度始终为0.

如果我在PowerShellshell中,而不是cmd.exe,它可以工作(当然).但我还不够舒服,无法全时在PowerShell环境中生活.我不想打字powershell.exe -command xuxu.ps1 p1 p2 p3 p4.我想打字xuxu p1 p2 p3 p4.

这是可能的,如果是的话,怎么样?

我无法工作的样本很简单,foo.ps1:

Write-Host "Num Args:" $args.Length;
foreach ($arg in $args) {
    Write-Host "Arg: $arg";
}
Run Code Online (Sandbox Code Playgroud)

结果总是如下:

C:\temp> foo
Num Args: 0
C:\temp> foo a b c d
Num Args: 0
c:\temp>
Run Code Online (Sandbox Code Playgroud)

powershell command-line arguments

82
推荐指数
5
解决办法
25万
查看次数

如何使用PowerShell创建快捷方式

我想用PowerShell为这个可执行文件创建一个快捷方式:

C:\Program Files (x86)\ColorPix\ColorPix.exe
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

powershell command-line shortcut desktop-shortcut

82
推荐指数
2
解决办法
13万
查看次数

在Powershell中等效的"更多"或"更少"命令?

有没有办法通过将输出路由到一些'more'命令来对输出进行分页,这个命令可以在linux\unix shell中找到?

powershell

81
推荐指数
7
解决办法
6万
查看次数

如何使PowerShell选项卡完成像Bash一样工作

假设我在当前目录中有以下文件:

buildBar.bat
buildFoo.bat
buildHouse.bat
Run Code Online (Sandbox Code Playgroud)

然后我输入我的命令提示符下,./bu然后TAB.

  • 在Bash中,它扩展到了 ./build

  • 在PowerShell中,它会扩展为./buildBar.bat- 列表中的第一项.

  • 在Cmd中,行为与PowerShell相同.

我更喜欢Bash行为 - 有没有办法让PowerShell表现得像Bash.

powershell cmd tab-completion

81
推荐指数
6
解决办法
3万
查看次数

显示正在运行的PowerShell脚本中的所有环境变量

我需要在运行时在PowerShell脚本中显示所有已配置的环境变量.通常在显示环境变量时,我可以在shell中使用以下其中一种(除了其他技术,但这些很简单):

gci env:*
ls Env:
Run Code Online (Sandbox Code Playgroud)

但是,我从另一个程序调用了一个脚本,当我在脚本中使用上述调用之一时,而不是显示环境变量及其值,而是获取System.Collections.DictionaryEntry类型列表而不是变量及其值.在PowerShell脚本中,如何显示所有环境变量?

powershell environment-variables

81
推荐指数
9
解决办法
6万
查看次数