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

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 32213
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

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

Inlägg 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:
Användarvisningsbild
rvl
Inlägg: 7294
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

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

Inlägg av rvl »

Radbytena: &&
slingan inom parenteser ()
...kanske?
Användarvisningsbild
rvl
Inlägg: 7294
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

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

Inlägg av rvl »

rvl skrev: 5 maj 2026, 17:04:26Radbytena: &&
Semikolon som kommandoseparator i PowerShell.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 32213
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

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

Inlägg 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
Användarvisningsbild
rvl
Inlägg: 7294
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

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

Inlägg av rvl »

Gött!
Skriv svar