我想知道普通极客可以从 Powershell 中获得什么好处。所以拿那些把所有时间都花在电脑前但不一定是程序员的人来说吧。游戏玩家、动漫和硬件怪胎,或者只是一般的计算机极客。这些非技术用户从学习命令行/脚本语言中得到什么好处?生产力有任何提高吗?
我一直对命令行/脚本工具很感兴趣,因为极客比我使用它们并发誓更酷(极客)。但是,除了每周一次自动执行文件夹 RAR-ing 和通过网络共享备份一次之外,我不知道像我这样的人使用命令行有什么用,但也许一旦我学会了它,我会发现它更有用吗?
有任何想法吗?
Windows 7 上的 Powershell 可以区分硬盘驱动器上的两个文件吗?
有时文本比较是有帮助的,但除此之外,仅仅判断一个文件是否与另一个文件相同是有帮助的。谢谢。
更新:
在 UNIX 上,它是
diff file1.dat file2.dat
Run Code Online (Sandbox Code Playgroud)
在 Powershell 上,如果我创建包含内容“hello”的 file1.txt 并将此文件复制到 file2.txt,然后键入
diff file1.txt file2.txt
Run Code Online (Sandbox Code Playgroud)
结果是
InputObject SideIndicator
----------- -------------
file2.txt =>
file1.txt <=
Run Code Online (Sandbox Code Playgroud)
如果我将 file2.txt 的内容更改为“hello world”并再次进行 diff,则 diff'ing 的结果是相同的。
是否有类似multitail的程序,但适用于 Windows cmd.exe 或 powershell(不是 GUI)?

这应该是一个非常简单的方法,但我似乎找不到一种简单的方法。
例如,在 Powershell 中,我使用 CSV 文件,然后使用该文件根据 ID 查找一些配置数据。这是我现在拥有的,它有效,但必须有更好的方法。
$configList = import-csv "C:\myconfig.csv"
$id = "5001"
$configList | where-object {$_.id -eq $id} | foreach-object{ $configData = $_.configData}
Run Code Online (Sandbox Code Playgroud)
如果使用格式表等,我总是得到列标题,然后我必须将其切断。
同样,这必须非常简单,而且这不是表演障碍。但是必须有更好的方法来从没有列标题的表中获取数据。
我正在使用 WMI 找出 HBA 卡上我的端口的 WWN(全球通用名称)是什么。我可以取回 WWN,但它包含为 8 字节数组。我想将此字节数组转换为 16 位十六进制数字的字符串,以便于显示。
这是我用来在自己的行中打印出每个数字的查询。有没有办法将其转换为将 8 行合并为一行?
gwmi -namespace root\wmi -class MSFC_FibrePortNPIVAttributes | select -expand WWPN | foreach { $_.ToString("X2") }
Run Code Online (Sandbox Code Playgroud)
我认为以下内容可用于仅使用字节数据进行测试,但我还是 PowerShell 的新手。
[byte[]] 1,2,3,4,5,6,7,8 | foreach { $_.ToString("X2") }
Run Code Online (Sandbox Code Playgroud) 在安装更新期间,我注意到“PowerShell 2.0 和 WinRM”更新。在阅读了一些 Microsoft 和 Wikipedia 页面后,我了解到它是在 SOAP 上运行的远程管理系统,并且对于远程技术支持很有用。
当我提供远程“家庭技术支持”时,我变得感兴趣。
所以:
给你们的挑战,在这里:
我需要一些方法(最好是内置的,但也可以考虑 F/OSS 第三方应用程序)来生成某个级别的子文件夹列表,以及(或者,更好地,过滤)它们的“修改日期”。请注意,我需要的文件夹列表只-输出应排除文件。
例子:
对于文件夹结构:
C:
\---Reports
+----Task1
| \----Report1
| +----CSV
| +----HTML
| \----XML
+----Task2
| +----Report1
| | +----CSV
| | +----HTML
| | \----XML
| +----Report2
| | +----CSV
| | +----HTML
| | \----XML
| \----Report3
| +----CSV
| +----HTML
| \----XML
\----Task3
+----Report1
| +----CSV
| +----HTML
| \----XML
\----Report2
+----CSV
+----HTML
\----XML
Run Code Online (Sandbox Code Playgroud)
我希望列表具有类似于以下内容的信息:
PATH | MODIFIED
=============================|==========
C:\Reports\Task1\Report1 | 6/23/2011
C:\Reports\Task2\Report1 | 6/17/2011
C:\Reports\Task2\Report2 | 6/30/2011 …Run Code Online (Sandbox Code Playgroud) 假设我有一个名为 p 的用户环境变量,它的值是我存储项目的路径。
在命令提示符中,您可以使用它们从命令行的任何位置快速访问特定目录:
cd %p%
Run Code Online (Sandbox Code Playgroud)
这在 Powershell 中不起作用,无论如何可以获得相同的功能?
powershell command-line environment-variables powershell-2.0
例如,我想像从 vb 一样使用 SQLConnection 对象。我想这样做:
例如
$conn = New-Object system.data.sqlclient.sqlconnectionstringbuilder
$conn.DataSource = 'myserver'
Run Code Online (Sandbox Code Playgroud)
但这失败了:
Keyword not supported: 'DataSource'.
At line:1 char:4
+ $conn. <<<< DataSource = 'myserver'
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException
Run Code Online (Sandbox Code Playgroud)
虽然:
PS C:\WINDOWS\system32\WindowsPowerShell> $conn|Get-Member *sour*
TypeName: System.Data.SqlClient.SqlConnectionStringBuilder
Name MemberType Definition
---- ---------- ----------
DataSource Property System.String DataSource {get;set;}
Run Code Online (Sandbox Code Playgroud)
我的 Powershell 版本:
PS C:\WINDOWS\system32\WindowsPowerShell> $PSVersionTable
Name Value
---- -----
CLRVersion 2.0.50727.3634
BuildVersion 6.0.6002.18111
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion …Run Code Online (Sandbox Code Playgroud) 我是一家小型企业(120 名员工)的系统管理员,我正在寻找一种简单的方法来将办公室中的所有计算机重命名为更统一的命名约定。
我曾尝试在命令提示符中使用“netdom renamecomputer”行,但这似乎根本不起作用。可能是因为不在组策略上。我们使用 WORKGROUP 设置我们的计算机,然后让我们的员工使用远程桌面连接连接到工作服务器。
是否有我可以下载的 Powershell 工具或程序来帮助我重命名网络中的所有计算机?
PS 我们主要有 Win7 机器,但最近我们增加了大约 20 台 Win8 机器(以防万一)
powershell ×10
command-line ×3
windows-7 ×3
comparison ×1
diff ×1
fiber ×1
linux ×1
report ×1
script ×1
tail ×1
windows ×1
windows-8 ×1
windows-xp ×1