Запуск .bat-файла, вставленного ниже, создает текстовые файлы, необходимые приложению для работы, однако, когда приложение запускается через строку START в файле .bat, мое приложение уведомляет меня, что эти файлы не существуют.Однако это не тот случай, как если бы я сам запустил приложение, открыв .exe, у меня нет проблем.
Вот файл .bat.
pushd %~dp0
Powershell.exe -executionpolicy remotesigned -File "GetInstalledPrograms.ps1"
@ECHO OFF
SET InstalledProgramNames="InstalledProgramNames.txt"
SET InstalledProgramNames6432Node="InstalledProgramNames6432Node.txt"
SET InstalledProgramVersions="InstalledProgramVersions.txt"
SET InstalledProgramVersions6432Node="InstalledProgramVersions6432Node.txt"
:CheckForFile
IF EXIST %InstalledProgramNames% IF EXIST %InstalledProgramNames6432Node% IF EXIST %InstalledProgramVersions% IF EXIST %InstalledProgramVersions6432Node% GOTO FoundIt
REM If we get here, the file is not found.
REM Wait 5 seconds and then recheck.
REM If no delay is needed, comment/remove the timeout line.
TIMEOUT /T 5 >nul
GOTO CheckForFile
:FoundIt
ECHO Found: %InstalledProgramNames%
ECHO Found: %InstalledProgramNames6432Node%
ECHO Found: %InstalledProgramVersions%
ECHO Found: %InstalledProgramVersions6432Node%
REM Change this when releasing - it wont be debug
START "" "bin\Debug\NIThirdPartySoftwareChecker.exe"
РЕДАКТИРОВАТЬ: .ps1 файл в соответствии с просьбой.
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Out-File -filepath InstalledProgramNames6432Node.txt
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName | Out-File -filepath InstalledProgramNames.txt
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayVersion | Out-File -filepath InstalledProgramVersions6432Node.txt
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayVersion | Out-File -filepath InstalledProgramVersions.txt