Sida 1 av 1

Skriva om en batchfil för att köras som en oneliner?

Postat: 5 maj 2026, 16:44:51
av MadModder
Jag har knåpat ihop ett batch script här som funkar som jag vill.
Det plockar ut ett sexsiffrig nummer som står efter "ST-" i varje filnamn, och stoppar sen alla nummer i urklipp.

Kod: Markera allt

@echo off
setlocal enabledelayedexpansion

set "directory=D:\temp\test"
set "output="
set "n=^&echo:"

for /f "tokens=1,*" %%A in ('dir /b "%directory%\*" ^| findstr /i "ST-"') do (
    set "filename=%%B"
    set "number=!filename:~3,6!"
    set "output=!output!!number!%n%"
)

echo !output! | clip

endlocal

men jag behöver kunna köra det som en enda rad i kommandotolken, för jag får inte köra batchfiler på datorn jag vill använda det på...
Går det att få till tro?
Utan att köra CMD... :humm:

Re: Skriva om en batchfil för att köras som en oneliner?

Postat: 5 maj 2026, 17:04:26
av rvl
Radbytena: &&
slingan inom parenteser ()
...kanske?

Re: Skriva om en batchfil för att köras som en oneliner?

Postat: 5 maj 2026, 17:20:19
av rvl
rvl skrev: 5 maj 2026, 17:04:26Radbytena: &&
Semikolon som kommandoseparator i PowerShell.

Re: Skriva om en batchfil för att köras som en oneliner?

Postat: 5 maj 2026, 18:05:31
av MadModder
Ja powershell är ju enklare, men vetefasen om jag har behörighet till det där.

Lyckades inte få till det, så jag använde chatgpt.
Efter en hel jäkla timme av bara fel och
Jaha, ja det där är ett typiskt fel pga bla bla bla bla... :roll:
Så fick jag till slut fram något som faktiskt funkar.

Kod: Markera allt

(for %F in (D:\temp\test\*ST-*) do @for /f "tokens=2 delims=-" %A in ("%~nF") do @for /f "tokens=1 delims= " %B in ("%A") do @echo %B) | clip

Re: Skriva om en batchfil för att köras som en oneliner?

Postat: 5 maj 2026, 18:10:50
av rvl
Gött!