Задать вопрос
Natasha000
@Natasha000

Возможно ли переписать это на PowerShell?

Мне нужно реализовать следующую команду на PowerShell, так как выполнить её в cmd не представляется возможным.

find J:/sobr/ -type f -print0 | xargs -0 rling stdin stdout J:/apb/* | stdout >> J:/unick/final.txt


  1. Команда выбирает все файлы в каталоге J:/sobr/.
  2. Для каждого найденного файла:
    • Он передаётся как входной параметр в программу rling.
    • Программа rling сравнивает этот файл с файлами из папки J:/apb/ (рекурсивно).
  3. Результат (уникальные строки) дописывается в файл J:/unick/final.txt.


Вместо объединения всех результатов в один файл final.txt можно создавать отдельные файлы для каждого входного файла. Это приемлемо, если так будет проще реализовать.

Как можно преобразовать эту команду в эквивалент для PowerShell? Если возможно, приведите пример скрипта.
  • Вопрос задан
  • 432 просмотра
Подписаться 3 Средний Комментировать
Решения вопроса 2
@d-stream
Готовые решения - не подаю, но...
вот скормил ии и он даже на cmd сотворил
for %%F in ("%source_folder%\*") do (
    call rling "%%~fF" "%compare_folder%"
    type result.txt >> %output_file%
    del /q result.txt


на powershell
if (!(Test-Path $outputFile)) {
    New-Item -Path $outputFile -Force | Out-Null
}
Get-ChildItem -Path $sourceFolder -File | ForEach-Object {
    & rling $_.FullName $compareFolder
    Get-Content -Path '.\result.txt' | Add-Content -Path $outputFile
    Remove-Item -Path '.\result.txt' -ErrorAction SilentlyContinue
}


ну и да, если предварить каждую команду в исходном тремя буковками wsl - то тоже будет результат)

p/s/ кстати интересная логика у ии)
Ответ написан
Natasha000
@Natasha000 Автор вопроса
Я решила вопрос нейронкой на cmd . Спасибо d-stream, за наводку. Вместо пере направления потока сделала добавление нового имени файла.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@rPman
В windows встроено (устанавливается из коробки) несколько языков программирования, начиная с javascript/vbasic в древнем windows scripting host (запускать программу в виде текстового файла .js или .vbs с помощь cscript.exe //nologo имя_файла.js) и заканчивая полноценного .net c#/vbs#/js# собираемого в .exe одной строчкой (никаких проектов, никаких студий, просто в редакторе пишешь код и запускаешь)

Но люди продолжают ломать свои мозги, используя неадекватный ему инструмент что в windows (cmd и спасибо powershell лучше но все равно извращение, лучше он только потому что предоставляет больше доступа к windows-specific функционалу но не как язык программирования) так и в linux (когда я вижу, как люди в очередной раз пишут многостраничные простыни на bash чтобы работать с датами, вместо того чтобы написать код в пару строчек на python/php/..., мне становится грустно, куча всего в linux буквально написано на bash, поддерживать это неадекватное месиво ужасно.

И да, я знаю, что бывает код на bash/powershell проще, но только потому что там уже есть решение проблемы, и весь этот код - просто способ описания этой проблемы.
Ответ написан
@Neyvils
Системный администратор
Главное не мешайте PowerShell с CMD, хоть можно работать и через одно окно как бы, но это разные вещи.
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега Linux
зачем в винде вшит линукс можно его и использовать с текущей файловой системой
Ответ написан
@daberman777
WSL из поднеё можно работь с файлами вашей основной системы.
К ней так же можно подключаться через VS code и удобно работь
https://learn.microsoft.com/ru-ru/windows/wsl/inst...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы