使用Powershell创建多个文件吗?

时间:2019-05-31 09:58:20

标签: powershell cmd

我可以从this answer创建多个文件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)中的等效命令是什么?

8 个答案:

答案 0 :(得分:1)

对于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/batch looping

答案 1 :(得分:1)

对于字母,在PowerShell中,使用:

97..( 97+25 ) | foreach { new-item $env:temp\$( [char]$_ ).txt }

答案 2 :(得分:1)

不像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!"
)

答案 3 :(得分:0)

非常简单,看看:

name,ext=path.splitext(file)

if ext == '.jpeg':
    dst= '{}.jpg'.format(name)
    os.rename(file,dst)

您当然会将X替换为要在其中创建文件的路径。

如果需要进一步的解释,请告诉我。

答案 4 :(得分:0)

这不能直接回答您的问题(因为此方法要求提供每个文件扩展名),但是当然,更基本的方法是

<body>
  <div id=target></div>
  <h1 id="clipper">CLIP HERE</h1>
</body>

答案 5 :(得分:0)

经过几次失败的尝试后,我将上面的几个答案混合在一起以创建名为 [char][int].txt: 1..5 | foreach {New-Item -Path 'X' -Name "abc$_.txt"} 的文件,其中 X 是路径。另外,感谢这个问题的原作者,因为它非常简洁地描述了我试图解决的问题。

答案 6 :(得分:0)

@Emilson Inoa 您的解决方案非常巧妙;名称中有拼写错误,我确定您打算排除数组中的扩展名。你会得到

("Text1", "Text2", "Text3") | % {ni -Path "/path/to/dir" -Name "$_.txt"}

答案 7 :(得分:0)

1..1000000 | foreach {new-item -path C:\Testdata$_.txt}

这对我来说效果很好。在 C:\Testdata 文件夹中创建了 100 万个文件。