qmc*_*sey 0 powershell powershell-2.0
任何人都可以告诉我他们是否认为这个Powershell脚本有问题.
Dir |
where {$_.extension -eq ".txt"} |
Rename-Item –NewName { $_.name –replace “.“,”-” }
Run Code Online (Sandbox Code Playgroud)
对于当前目录中的每个文本文件,我试图用连字符替换文件名中的所有句点.提前谢谢.
正如其他人所说,-replace使用正则表达式(和"."是正则表达式中的特殊字符).但是,他们的解决方案是忘记了文件扩展,他们正在实际删除它.恩."test.txt"变为"test-txt"(无扩展名).更好的解决方案是:
dir -Filter *.txt | Rename-Item -NewName { $_.BaseName.replace(".","-") + $_.Extension }
Run Code Online (Sandbox Code Playgroud)
这也使用-Filter只挑选以".txt"结尾的文件,这比用在哪里比较快.
-replace在正则表达式上运行,你需要转义'.':
rename-item -NewName { $_.Name -replace '\.', '-' }
Run Code Online (Sandbox Code Playgroud)
否则你最终会得到'----'的名字......
| 归档时间: |
|
| 查看次数: |
12948 次 |
| 最近记录: |