Добрый день, моя проблема в том, что мой скрипт анализирует только первую строку моего списка на каждом ходу, у рассматриваемой программы нет пакетной поддержки, поэтому ее нужно запускать для каждой строки. Было бы очень хорошо, если бы кто-то мог даже объяснить, что я сделал неправильно
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`cd /d J:\temp\2 ^& dir /p /b /s`) DO (
SET var=%%F
)
ECHO %var%
IF not exist "J:\temp\1\%var:~3%" (mkdir "J:\temp\1\%var:~3%")
RMDIR /s /q "J:\temp\1\%var:~3%\"
FOR /F "tokens=* USEBACKQ" %%A in ( %var% ) DO (
SET count+=1
J:\temp\windows\comp.exe -o"J:\temp\1\%var:~3%" -cn -d10 -intense -brute -s125 -t-j "%var%" )
Это также не работает
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set /a count = 1
FOR /F "tokens=* USEBACKQ" %%F IN (`cd /d J:\temp\2 ^& dir /p /b /s`) DO (
SET var=%%F
)
ECHO %var%
IF not exist "J:\temp\1\%var:~3%" (mkdir "J:\temp\1\%var:~3%")
rmdir /s /q "J:\temp\1\%var:~3%\"
for /F "tokens=* USEBACKQ" %%A in ( %var% ) do (
SET /a count+=1
echo !count!
J:\temp\windows\precomp.exe -o"J:\temp\1\%var:~3%" -cn -d10 -intense -brute -s125 -t-j "%var%" )
Пробный Powershell, намного меньше, но не повезло. PowerShell думает, что пути будут длинными, но нет
$file = (Get-ChildItem "J:\temp\2" -Recurse -Force -ErrorAction SilentlyContinue ).fullname
$fout = (Get-ChildItem "J:\temp\2" -Recurse -Force -ErrorAction SilentlyContinue ).fullname.Substring(10)
Robocopy "J:\temp\2" "J:\temp\1\" /S /E /ZB /DCOPY:T /SEC /COPYALL /XC /XO /XF *.*
Get-Content (Get-ChildItem "J:\temp\2" -Recurse -Force -ErrorAction SilentlyContinue ).fullname | ForEach-Object {
J:\temp\windows\precomp.exe -o"J:\temp\1\$fout" -cn -d10 -intense -brute -s125 -t-j "$file"
}
Также Powerrshell: если я использую Get-Content, я получаю ошибку Доступ к пути запрещен, или с помощью Get-ChildItem неожиданно появляется неправильный путь, и, если сопоставить вручную, выдает ошибку "ReadLines" с аргументом (ами) "1", поэтому он больше не разбирает его построчно
$file = @(Get-ChildItem "J:\temp\2\" -Recurse -Force -ErrorAction SilentlyContinue ).fullname
$fout = (Get-ChildItem "J:\temp\2\" -Recurse -Force -ErrorAction SilentlyContinue ).fullname.Substring(10)
Robocopy "J:\temp\2" "J:\temp\1\" /S /E /ZB /DCOPY:T /SEC /COPYALL /XC /XO /XF *.*
$arrayFromFile = @(Get-Content $file)
$arrayFromFout = @(Get-Content $fout)
foreach($line in [System.IO.File]::ReadLines("$arrayFromFile"))
{
J:\temp\windows\precomp.exe -o"J:\temp\1\$_arrayFromFout" -cn -d10 -intense -brute -s125 -t-j "$_arrayFromFile"
}