请原谅一个菜鸟问题,但我完全被这个问题搞糊涂了。
我有一个用户提交的文件到达的“存款人”目录,并且无法控制传入的文件名。
我在 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 等效项也失败
您可以提供任何见解将是最受欢迎的。
提前致谢 。. .
我在一个文件夹中有数百个 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 或命令行中实现此目的的代码?
我正在使用 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)
但这会打开一个资源管理器窗口,而不是更改当前目录。
我们想将我们的*.html文件重命名为,*.php但(遗憾的是)没有足够的知识来使用 cmd 提示符命令和/或批处理文件来完成。
问题是每个文件都在单独的文件夹中——我说的是 750 多个不同的文件夹名称。对我知道的文件使用通配符是,*
但我不知道对文件夹使用通配符。我们可能需要使用FOR命令(在命令提示符中),但我被卡住了。
我们使用的文件夹结构是:
父文件夹/子文件夹/孙文件夹/文件.html
例如:
games/A/game_name/file.htmlgames/B/game_name/file.htmlgames/C/game_name/file.html 等等。所有文件的父文件夹都相同;大多数文件的子文件夹和孙文件夹是不同的。
将这些文件重命名为*.php我假设以下内容.htaccess将进行永久重定向。
RedirectMatch 301 (.*)\.html$ http://oursite.com$1.php
Run Code Online (Sandbox Code Playgroud) 可能的重复:
在 Windows 7 中临时更改控制台属性
我想更改cmd.exe和 PowerShell使用的字体。当我右键单击窗口边框时,我会看到默认值和属性:

有什么不同?有人会认为 Defaults 是针对所有会话的,而 Properties 是针对当前会话的。但是,即使在重新启动cmd.exe之后,对属性的更改仍会保留。
另一个问题是更改 Defaults 或 Properties 中的字体实际上并没有更改字体。这是在 Windows 8 上。
如何使用这样的通配符在 Windows 命令行中搜索文件?
C:\Users\*\AppData\Local\*.txt
Run Code Online (Sandbox Code Playgroud) 使用 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 执行如此简单的事情的语法。谢谢你。
我已经阅读并尝试了各种方法,但它就是不接受......我什至试图逃避空格以及试图在路径前添加额外的引号(转义引号)......
$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) 我正在使用Visual Studio Code编写我的 PowerShell 脚本。
我已经安装了ms-vscode.powershellVisual Studio Code的PowerShell 扩展。
每当我在脚本中使用别名时,它都会PSScriptAnalyzer告诉我使用完整的 CmdLet 名称。这有点烦人,因为它还用绿色曲线标记所有别名。
我怎样才能禁用它?
powershell ×10
command-line ×3
windows ×2
windows-7 ×2
batch-rename ×1
filenames ×1
html ×1
linux ×1
mkdir ×1
php ×1
rename ×1
search ×1
shortcuts ×1
wildcards ×1
windows-10 ×1
windows-8 ×1
wmi ×1