我可以从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)中的等效命令是什么?
答案 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 万个文件。