Создать несколько файлов с помощью Powershell? - PullRequest
0 голосов
/ 31 мая 2019

С этот ответ Я могу создать несколько файлов 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)?

Ответы [ 3 ]

2 голосов
/ 31 мая 2019

Для писем в PowerShell используйте:

97..( 97+25 ) | foreach { new-item $env:temp\$( [char]$_ ).txt }
2 голосов
/ 31 мая 2019

Не так лаконично, как 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, это может сработать. Когда это похоже на правильные команды, удалите или закомментируйте строку 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!"
)
2 голосов
/ 31 мая 2019

Для 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 / циклический цикл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...