从这个答案我可以创建多个文件a.txt,b.txt,...,z.txt。在 Bash 中:
touch {a..z}.txt
或 152 与:
touch {{a..z},{A..Z},{0..99}}.txt
如何在 Powershell 中执行此操作? 我知道
New-Item a.txt
,但是如果我想要多个文件,如上所述?
出于好奇,命令提示符 (cmd.exe) 中的等效命令是什么?
对于 Powershell:
1..5 | foreach { new-item -path c:\temp\$_.txt }
foreach
循环将对 1 到 5 中的每个数字运行,并在所需路径中生成一个文件,并将该数字的名称传递给命令(由 $_
表示)
你也可以写成:
%{1..5} | new-item c:\temp\$_.txt
对于cmd:
for /L %v in (1,1,5) do type nul > %v.txt
更多信息在这里:cmd/批量循环
不如 bash 简洁,但可以做到。
@(97..(97+25)) + @(48..(48+9)) |
ForEach-Object { New-Item -Path "$([char]$_).txt" -WhatIf }
另一种方式...
@([int][char]'a'..[int][char]'z') + @([int][char]'0'..[int][char]'9') |
ForEach-Object { New-Item -Path "$([char]$_).txt" -WhatIf }
还有一个...
function rng { @($([int][char]$args[0])..$([int][char]$args[1])) }
(rng 'a' 'z') + (rng '0' '9') |
ForEach-Object { New-Item -Path "$([char]$_).txt" -WhatIf }
如果您迫切希望在 cmd.exe shell 中执行此操作,这可能会起作用。当看起来生成了正确的命令时,删除或注释掉
echo
行,并从下一行中删除 rem
。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "CLIST=abcdefghijklmnopqrstuvwxyz0123456789"
FOR /L %%i IN (0,1,35) DO (
CALL SET "S=%%CLIST:~%%i,1%%.txt"
echo TYPE NUL ^>"!S!"
rem TYPE NUL >"!S!"
)
@Emilson Inoa 你的解决方案非常巧妙;名称中有一个拼写错误,我确信您的意思是排除数组中的扩展名。你最终会得到
("Text1", "Text2", "Text3") | % {ni -Path "/path/to/dir" -Name "$_.txt"}
对于字母,在 PowerShell 中,使用:
97..( 97+25 ) | foreach { new-item $env:temp\$( [char]$_ ).txt }
很简单,看一下:
("Text1.txt","Text2.txt", "Text3.txt") | foreach { New-Item -Path "X" -Name "$_.txt" }
当然,您将用您想要创建文件的路径替换 X。
如果需要进一步解释,请告诉我。
在 PowerShell 中,您可以使用
New-Item
New-Item a.txt, b.txt, c.txt
然后点击 Enter
在 powershell 中执行以下命令将在命令执行的目录中创建多个名为 Doc_.txt 的文件 (20)。
new-item $(1..20 | %{"Doc$_.txt"})
我认为这个命令最接近 bash 的等价命令:
touch Doc{1..20}.txt
使用循环创建多个文件:
$count = Read-Host -Prompt "Enter Count"
$count
for ($i=1 ; $i -le $count;($i++)){
New-Item -Path "<Path>\<Filename>$i.txt"
}
要获得静态数字,请将计数变量删除为固定数字
这并不能直接回答你的问题(因为这种方法需要提供每个文件扩展名),但更基本的方法当然是:
New-Item {a..z}.txt, {A..Z}.txt, {0..9}.txt
经过几次失败的尝试后,我将上面的几个答案混合在一起,创建了标题为 [char][int].txt:
1..5 | foreach {New-Item -Path 'X' -Name "abc$_.txt"}
的文件,其中 X 是路径。另外,只是为了感谢问题的原作者,因为它非常简洁地描述了我试图解决的问题。
1..1000000 | foreach {new-item -path C:\Testdata$_.txt}
这对我来说效果很好。在C:\Testdata文件夹中创建了1M文件。
在 Windows PowerShell 中创建多个文件就是这么简单
ni file1.txt, file2.txt, file3.txt, "file 4 with spaces.txt", file5.txt
ni
仅代表新商品。