Agregar botón de menú contextual para ejecutar el comando de PowerShell dentro de una carpeta


0

Tome esta publicación anterior como ejemplo: https://superuser.com/a/701739/761937

Este es el comando que uso. Generalmente hago clic derecho en el fondo de la carpeta, abro un indicador de PowerShell en la ruta seleccionada y ejecuto el siguiente comando:

(Get-ChildItem) | ForEach {Rename-Item  $_.FullName ($_.LastWriteTime.ToString("yyyyMMddHHmmss") + $_.Extension)}

Agregué un botón adicional cuando hago clic derecho en el fondo de la carpeta para ejecutar automáticamente el comando que necesito. Este es el contenido de la clave:

powershell.exe -noexit -command "(Get-ChildItem) | ForEach {Rename-Item  $_.FullName ($_.LastWriteTime.ToString("yyyyMMddHHmmss") + $_.Extension)}"

Pero tengo múltiples errores. PS está localizado en mi idioma, así que no sé si puedo pegar el registro de errores, pero tal vez pueda verificar la sintaxis de mi comando y decirme si hay algo mal

Respuestas:


0

Cambie las comillas dobles a comillas simples en su patrón de formato de fecha dentro del método ToString.

$_.LastWriteTime.ToString('yyyyMMddHHmmss')

Debería estar bien. Su parámetro de comando comienza con comillas dobles y termina en ToString("y el resto del comando no se procesa.


¡Gracias! funcionó. No noté la cita doble en absoluto
1500822802299

0

Rename-Item acepta entradas canalizadas, por lo que no es necesario Foreach. O escapan las comillas dobles internas:

powershell.exe -NoP -NoE -C "(Get-ChildItem) | Rename-Item -NewName {($_.LastWriteTime.ToString(\"yyyyMMddHHmmss\") + $_.Extension)}"

o como sugirió WeatherForecastingRat, use comillas simples:

powershell.exe -NoP -NoE -C "(Get-ChildItem) | Rename-Item -NewName {($_.LastWriteTime.ToString('yyyyMMddHHmmss') + $_.Extension)}"

Intenté usar los dos métodos sugeridos, pero ninguno funcionó y tuve errores sobre los parámetros (aún registros de errores localizados)
1500822802299

Tonto, olvidé el -NewNameparámetro necesario al alimentar desde la tubería
LotPings
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.