Приложение, которое проверяет текстовые файлы при запуске, не находит текстовые файлы при запуске через командный файл - PullRequest
0 голосов
/ 07 марта 2019

Запуск .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
...