标签: powershell

当文件名包含 [方括号字符] 时,复制/移动/重命名中的 Powershell 错误?

请原谅一个菜鸟问题,但我完全被这个问题搞糊涂了。

我有一个用户提交的文件到达的“存款人”目录,并且无法控制传入的文件名。

我在 PS 中创建了一个解析器,它非常成功地将文件(基于文件名内容)移动到适当的目的地。

这工作正常,除非文件名包含“[”或“]”。

这是“重命名”预处理器,它实际上无法重命名包含任何一个讨厌的括号字符的文件:

 cd $folderpath
 foreach ($i in get-childitem $folderpath) {   
     if ($i.mode.substring(0,1) -ne “d”) {
        $name = $i.name.replace("[","_")
        $name = $name.replace("]","_")
        Write-Host $i -foregroundcolor “blue”       
        Write-Host $name -foregroundcolor “green”  

        Rename-Item $i $name 

     }
 }
Run Code Online (Sandbox Code Playgroud)

这对于 ren、copy、move 及其 cmdlet 等效项也失败

您可以提供任何见解将是最受欢迎的。

提前致谢 。. .

powershell filenames

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

使用 cmd 或 Powershell 将多个文件重命名为“修改日期/时间”

我在一个文件夹中有数百个 JPG 文件。我想重命名每个文件,以便将文件名替换为该文件的“修改日期/时间”,即DD.MM.RRRR.HH.MM.jpg. 例如,

Before    After  

001.jpg   11.01.2011.16.58.jpg  
002.jpg   12.01.2011.09.32.jpg  
003.jpg   14.01.2011.12.41.jpg  
...       ...
Run Code Online (Sandbox Code Playgroud)

由于不能在文件名中使用冒号 (:),因此必须用句点替换 HH 和 MM 之间的冒号。

我不想使用第 3 方工具。您能否向我提供在 Powershell 或命令行中实现此目的的代码?

windows-7 powershell command-line rename

11
推荐指数
1
解决办法
2万
查看次数

如何在 Power Shell 中遵循 Windows 快捷方式?

我正在使用 powershell,并且在当前目录中有一个指向目标目录的快捷方式。我想将当前目录更改为快捷方式指向的目录。从逻辑上讲,我想做的是:

cd your-files-here.lnk
Run Code Online (Sandbox Code Playgroud)

并在那个点上结束。我得到的是:

Set-Location : Cannot find path 'your-files-here.lnk' because it does not exist.
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\pscx\Modules\CD\Pscx.CD.psm1:111 char:17
+                 Set-Location <<<<  $path -UseTransaction:$UseTransaction
    + CategoryInfo          : ObjectNotFound: (your-files-here.lnk:String) [Set-Location], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
Run Code Online (Sandbox Code Playgroud)

我试过

ii your-files-here.lnk
Run Code Online (Sandbox Code Playgroud)

但这会打开一个资源管理器窗口,而不是更改当前目录。

windows-7 powershell shortcuts

11
推荐指数
2
解决办法
8483
查看次数

如何使用一个命令重命名多个文件夹中的多个文件

我们想将我们的*.html文件重命名为,*.php但(遗憾的是)没有足够的知识来使用 cmd 提示符命令和/或批处理文件来完成。

问题是每个文件都在单独的文件夹中——我说的是 750 多个不同的文件夹名称。对我知道的文件使用通配符是,* 但我不知道对文件夹使用通配符。我们可能需要使用FOR命令(在命令提示符中),但我被卡住了。

我们使用的文件夹结构是:

父文件夹/子文件夹/孙文件夹/文件.html

例如:

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html 等等。

所有文件的父文件夹都相同;大多数文件的子文件夹和孙文件夹是不同的。

将这些文件重命名为*.php我假设以下内容.htaccess将进行永久重定向。

RedirectMatch 301 (.*)\.html$ http://oursite.com$1.php
Run Code Online (Sandbox Code Playgroud)

windows html powershell php batch-rename

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

更改 cmd.exe 或 PowerShell 的设置时,默认值和属性有什么区别?

可能的重复:
在 Windows 7 中临时更改控制台属性

我想更改cmd.exe和 PowerShell使用的字体。当我右键单击窗口边框时,我会看到默认值和属性:

CMD.exe截图

有什么不同?有人会认为 Defaults 是针对所有会话的,而 Properties 是针对当前会话的。但是,即使在重新启动cmd.exe之后,对属性的更改仍会保留

另一个问题是更改 Defaults 或 Properties 中的字体实际上并没有更改字体。这是在 Windows 8 上。

powershell command-line windows-8

11
推荐指数
1
解决办法
3102
查看次数

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

多个目录:Powershell 相当于“mkdir dir{1..9}”?

使用 PowerShells md(或 mkdir、New-Item...)等价于 'nix 命令mkdir ch{1..9}即创建多个目录的语法是什么

~/parent_dir/  
ch1/  
ch2/  
ch3/  
ch4/  
ch5/  
ch6/  
ch7/  
ch8/  
ch9/  
Run Code Online (Sandbox Code Playgroud)

我查看了手册页和 get-help 示例,但我不知道 PowerShell 执行如此简单的事情的语法。谢谢你。

linux powershell command-line-arguments mkdir

11
推荐指数
2
解决办法
3864
查看次数

您如何将“程序文件(x86)”传递给 Powershell?

我已经阅读并尝试了各种方法,但它就是不接受......我什至试图逃避空格以及试图在路径前添加额外的引号(转义引号)......

$cmd = 'powershell.exe'
$dir = 'C:\Program Files (x86)\W T F'
$inner = "-NoExit -Command cd $dir"
$arguments = "Start-Process powershell -ArgumentList '$inner' -Verb RunAs"
& $cmd $arguments
Run Code Online (Sandbox Code Playgroud)

它不断给我这个:

x86 : The term 'x86' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:22
+ cd C:\Program Files (x86)\W T F …
Run Code Online (Sandbox Code Playgroud)

powershell

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

如何通过带有 WMI 的 Powershell 获取操作系统版本?

有谁知道如何获得这样的操作系统版本:

操作系统版本:1607

使用 Get-WmiObject?根本找不到这个 Informatin..

powershell wmi windows-10

11
推荐指数
2
解决办法
7万
查看次数

如何在 Visual Studio Code 的 PowerShell 扩展中禁用 PSScriptAnalyzer 的 PSAvoidUsingCmdletAliases

我正在使用Visual Studio Code编写我的 PowerShell 脚本。

我已经安装了ms-vscode.powershellVisual Studio Code的PowerShell 扩展。

每当我在脚本中使用别名时,它都会PSScriptAnalyzer告诉我使用完整的 CmdLet 名称。这有点烦人,因为它还用绿色曲线标记所有别名。

我怎样才能禁用它?

see_screenshot_of_the_problem

powershell visual-studio-code

11
推荐指数
1
解决办法
4110
查看次数