Questions tagged «powershell»

Windows PowerShell是Windows的命令行外壳程序和脚本语言,它取代了CMD.exe Shell和批处理语言。PowerShell还是Windows的自动化引擎,提供类似于Windows Script Host和VBScript的功能。

1
7zip:将存档的LastWriteTime设置为与内容一样旧
在Windows上,使用7za.exe v9.38,如何将存档的LastWriteTime(或CreationTime)设置为与内容相同?例如:我有一个“toto.txt”文件,创建于2015年1月1日,最后一次写入。 7za.exe a -t7z toto.7z toto.txt “toto.7z”的创作将于今天开始。 使用info-zip.org中的zip.exe,参数为 -o -o使zipfile与最新条目一样旧 谢谢! 编辑:您可以这样做: $srcDate = (Get-ChildItem $fileToCompress).LastWriteTime $dstFile = Get-ChildItem $7zFile $dstFile.LastWriteTime = $srcDate 但是通过简单的命令切换会更容易。

2
通过GUI程序自动导航
我有一个GUI程序,它是重复性任务的中介。有没有办法浏览程序并单击菜单栏中的所需项目以自动执行任务(它还必须导航到保存文件菜单)? 我知道Powershell脚本,我一直在使用它自动执行任务的其他部分,但我正在使用的特定程序没有命令行参数来浏览它。

0
Windows上的文件修改日期/时间错误
我有一些老视频,并将它们转换成mp4。我希望他们保留旧的修改日期/时间,所以我写了一个简单的PowerShell脚本。这很好用:Windows显示更改日期。 但是,如果我在线检查文件的元数据,他们中的大多数都没有我设置的修改日期/时间,而是转换发生的日期。 我的脚本做了这样的事情 Set-ItemProperty -Path "$($file[$i]).mp4" -Name LastWriteTimeUTC -Value $($time[$i]) Set-ItemProperty -Path "$($file[$i]).mp4" -Name CreationTimeUTC -Value $($time[$i]) Set-ItemProperty -Path "$($file[$i]).mp4" -Name LastAccessTimeUTC -Value $($time[$i]) 我很困惑为什么Windows向我显示所需的修改日期,而其他服务向我显示真正的修改日期以及为什么不会对所有文件发生这种情况。

1
从Win 10 PackageManager中的PSModule中删除PackageSource
所以我今天开始在Win10中使用powershell PackageManager,我发现安装chocolatey的第一个命令是 Register-PackageSource -Name chocolatey -Location http://chocolatey.org/api/v2 -Provider PSModule -Trusted -Verbose 听起来不错。查找包,但在尝试安装时,它说: The module 'vlc' cannot be installed or updated because it is not a properly-formed module. 然后我找到了 Get-PackageProvider Chocolatey -Force 它将它安装为一个分离提供程序,似乎工作。现在,在尝试安装时,我必须指定提供程序。 PS C:\Users\me> Get-PackageSource Name ProviderName IsTrusted IsRegistered IsValidated Location ---- ------------ --------- ------------ ----------- -------- chocolatey Chocolatey False …

0
PowerShell真的慢慢加载配置文件
使用PowerShell几个月后,我最近发现我的配置文件加载速度比正常情况慢得多。再过几个星期,它已经到了加载我的个人资料需要16秒的程度。过去需要不到1秒的时间来加载。每次启动PowerShell时都会出现此问题:即使我关闭它并立即再次启动它。PowerShell的其他任何方面都不受问题的影响 - 编译程序和运行脚本所花费的时间与计算机上的时间相同。什么可能导致这种荒唐的启动时间?我的个人资料信息如下,以及PowerShell最终加载后问候我的消息。 启动消息: Windows PowerShell Copyright (C) 2016 Microsoft Corporation. All rights reserved. Loading personal and system profiles took 16371ms. PS C:\Users\Zander Ackerman> 档案信息 function Get-Batchfile ($file) { $cmd = "`"$file`" & set" cmd /c $cmd | Foreach-Object { $p, $v = $_.split('=') if($p -and $v){ Set-Item -path env:$p …

0
播放视频时禁用控件
我有几个包含视频的文件夹,我创建了一个m3u播放列表文件,以便使用Powershell连续播放视频,我想开始播放该文件而不会让用户使用任何媒体快进或跳过视频玩家,我有MPC-HC,但对任何其他人开放。


2
Powershell似乎存储了多次按Enter键
我正在开发一个PowerShell脚本,通过从名字和名字生成用户名,从csv文件中将用户添加到Active Directory。在创建初始用户名(第一个初始名+姓)后,它会检查此用户名是否已存在。如果是,则要求确认首先尝试初始+中间首字母+姓氏。目前,我使用以下代码执行此操作: write-host "Default username is already taken. Please press enter tocontinue or type NO to skip importing this user. $PROMPT = Read-Host '>' $PROMPT = $PROMPT.ToLower() #If not skipped, continue with logic if ($PROMPT -ne "no") { ... } 这似乎有效,但如果我意外按两次输入,例如,它不仅确认当前提示,还确认下一个提示。我是PowerShell的新手,所以我猜这是有更好的方法。有什么建议?

1
适用于PowerShell的adb命令(Windows)
我是Windows的新手。我为Windows安装了adb和fastboot文件(平台工具),并在路径变量中添加了该文件夹,以便我可以普遍访问adb。 我做了一些研究,发现Windows正在慢慢转向PowerShell(这很好),并且(我猜)最终会省略传统的CMD。因此,即使[Shift +右键单击]菜单也会显示“在此打开PowerShell窗口”选项。我已经阅读了一些文章并熟悉注册表黑客添加“在这里打开命令提示符”并删除“在这里打开PowerShell窗口”,但这不是我想要做的事情,因为PowerShell比CMD更先进。 现在,当我在安装了platform-tools的同一个文件夹中打开PowerShell并运行adb命令时,我得到了这个并且它成功了。 .\adb devices .\adb.exe devices 但是当我在其他地方打开PowerShell并运行命令时,它并不成功。为什么即使我将adb文件夹添加到路径变量中,行为也是如此?我怎样才能成功地普遍运行命令? 在我的搜索过程中,我找到了一个提供PowerShell ADB和Fastboot GUI的应用程序--PoshADB(只是想分享)。 请注意的是adb devices工作在CMD就好了,普遍。 - 我从以下答案中得出结论: 当adb文件不在我身上时 PATH 这些工作在安装adb的同一文件夹中: 通过完整路径呼叫 .\adb devices .\adb.exe devices 这普遍适用: 通过完整路径呼叫 当adb文件打开时我的 PATH 这些工作在安装adb的同一文件夹中: 通过完整路径呼叫 .\adb devices .\adb.exe devices adb devices 这些作品普遍适用: adb devices 通过完整路径呼叫 对于我将来的参考 - (简明地说:如果它不在您的PATH身上,那么您必须输入它的完整路径才能工作。如果它在您的PATH身上adb devices,那么您只需输入或提及adb的完整路径)




0
在具有powershell作业的数据库中导入CSV文件
我试图用PowerShell将CSV文件导入数据库,但到目前为止我没有运气。 这是我的代码(基于此来源): Start-job -Name 'ImportingData' ` -InitializationScript {Ipmo DataTableConnect -Force -DisableNameChecking} ` -ScriptBlock {$DataImport = Import-Csv -Header ("heading01","heading02","heading03") -Path $path $DataTable = Out-DataTable -InputObject $DataImport Write-DataTable -ServerInstance SERVER -Database DB_NAME -TableName TB_NAME -Data $DataTable } 其中$path = C:\Users\Administrator\Desktop\TestFolder\testfile.txt DataTableConnect是一个模块,它包括这个脚本和.org / 2119脚本。 我不确定我的问题在哪里,所有单个部件似乎都工作得很好我认为可能唯一的问题就是$DataTable返回一堆问题system.data.datarow。然而,其他堆栈交换问答表明这是预期的。 谢谢,非常感谢任何帮助。 EDIT01:我没有得到任何错误或没有任何错误。我在.ps1文件中编写代码,然后通过PowerShell 2运行它。 我只是注意到,如果我在没有工作的情况下运行它,(因此代码看起来像这样): Ipmo DataTableConnect -Force -DisableNameChecking …
1 powershell  csv 

1
将Node.exe设置为使用cmd.exe而不是PowerShell
运行Node.js命令时,它会自动使用Powershell而不是cmd.exe。该comspec设置被设置为CMD.EXE。还有其他地方我应该改变这个吗? 我不确定它是Windows或Node.js相关设置(或两者兼而有之)。 节点v6.10.2,Windows 8.1专业版 如果有人知道Salesforce DX,这就是我正在运行的,sfdx正在使用节点,而node.exe触发Powershell而不是cmd.exe: sfdx force:auth:web:login --setdefaultdevhubusername --setalias "dev-hub-org"

1
正在推出不同类型的PowerShell控制台
我在Windows 7上,当我启动PowerShell控制台时,根据情况,我会得到两种提示之一,如屏幕截图所示。右边的那个(海军背景)是我定制的那个。我不明白的是为什么我得到左边的提示(类似DOS的终端控制台,黑色背景)。 当我右键单击Windows资源管理器左窗格中的某个“收藏夹”文件夹并选择“PowerShell Prompt Here”时,将启动左提示符(类似DOS)。 当我右键单击Windows资源管理器左窗格中的任何其他文件夹并选择“PowerShell Prompt Here”时,将启动正确的(自定义)。 我该怎么做以始终获得自定义提示?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.