Создание новых файлов поверх существующих - PullRequest
0 голосов
/ 09 января 2019

Я новичок в написании сценариев PowerShell. Я пытаюсь создать сценарий PowerShell, который будет создавать новые пользовательские файлы в заданной папке (путь)

Допустим, я уже ввел мой $pfad и мой $ext (т.е. .txt). И я ввел для $anz число 2. Мой вывод в папке будет выглядеть так:

«Created_File 1.txt» и «Created_File 2.txt»

#Enter Path where the files should be created
$pfad = Read-Host "Pfadeingabe "  

#Enter Number of files that should be generated
$anz = Read-Host "Anzahl an Dateien "

#Enter a file extension
$ext = Read-Host "Dateierweiterung (txt, pdf) "  

#Name of the standard created file
$name = "Created_File" 

#loop through the given number of files that should be created
for($i=1; $i -le $anz; $i++)
{
    #Check if the files already exist
    #if(Test-Path -Path "$pfad\$name $i.$ext" )
    #{
        #Code to create the given number of files with another name
    #}
    New-Item -Path $pfad -Name "$name $i.$ext" -ItemType "file"
}

Теперь, когда файлы уже существуют, я хочу проверить это в powershell, которые работают с оператором if внутри цикла for. Допустим, я ввожу для $anz число 2. Когда мой цикл for теперь зацикливается, оператор if проверяет, что уже существует 2 файла с одинаковыми именами.

Теперь я хочу, чтобы номер продолжался. Так что у меня есть как «Created_File 3.txt» и «Created_File 4.txt» в моей папке. И если я снова введу для $anz 2, то вывод должен продолжиться как «Created_File 5.txt» и «Created_File 6.txt»

Но я не знаю, как это сделать. Вы можете мне помочь?

Надеюсь, вы понимаете мой вопрос и что я хочу.

1 Ответ

0 голосов
/ 09 января 2019

Существует несколько способов решения этой проблемы, наиболее простой (imho) - поиск номера существующего файла, соответствующего файлу $name, и отсчет с него:

#Enter Path where the files should be created
$pfad = Read-Host "Pfadeingabe "  

#Enter Number of files that should be generated
$anz = Read-Host "Anzahl an Dateien "

#Enter a file extension
$ext = Read-Host "Dateierweiterung (txt, pdf) "  

#Name of the standard created file
$name = "Created_File" 

$existingFileNumber = get-childitem -Path $pfad -Filter "$name *.txt" | Measure-Object | Select-Object -ExpandProperty Count

#loop through the given number of files that should be created
for($i=$existingFileNumber +1 ; $i -le [int]$anz + $existingFileNumber; $i++)
{
    New-Item -Path $pfad -Name "$name $i.$ext" -ItemType "file"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...