Use %~1
para remover aspas duplas adjacentes da string %1
, se presente (requer extensões de comando ativadas ). Além disso, existem alguns sinais de %
por cento extra (chave equivocada?) Em seu código:
For /F "tokens=2 delims==," %%A In ("%1%") Do Set CompName=%%%A
^ ^
O próximo script pode funcionar:
@echo off
SETLOCAL EnableExtensions DisableDelayedExpansion
Title "Reset local Administrator password"
For /F "tokens=2 delims==," %%A In ("%~1") Do Set "CompName=%%A"
ECHO PowerShell.exe -ExecutionPolicy Unrestricted -Command "Import-Module AdmPwd.PS; Reset-AdmPwdPassword" -ComputerName:%CompName%
Set CompName=
Observe que PowerShell.exe
linha é meramente ECOed para fins de depuração (já que não tenho o módulo AdmPwd
instalado para depurá-lo); Torne operacional removendo a palavra ECHO
antes de ser depurado:
PowerShell.exe -ExecutionPolicy Unrestricted -Command "Import-Module AdmPwd.PS; Reset-AdmPwdPassword -ComputerName:%CompName%"
Recursos (leitura obrigatória):
- (referência de comando) Um índice A-Z da linha de comando do Windows CMD
- (particularidades úteis) Sintaxe de linha de comando do shell do Windows CMD
- (
%~1
,%%A
etc. página especial) Argumentos da linha de comando (parâmetros) - (página especial) SETLOCAL