2016-04-07 3 views
1

Ich möchte einen dynamischen Dateipfad in .bat Datei erstellen. Im Moment sieht der Dateipfad wie folgt aus:Verketten von Zeichenfolgen und Variablen im Stapel

"C:\FolderA\FolderB\FileA.xlsx" 

Ich möchte das heutige Datum im Dateinamen zu übernehmen, so etwas zu produzieren:

/exp:"C:\FolderA\FolderB\FileA " & date() & ".xlsx" /T` 

Ich habe versucht, eine Variable zu schaffen und es verketten mit dem Teil hart codiert, aber es funktioniert nicht:

set Mydate=!date:~10,4!!date:~7,2!!date:~4,2! 
/exp:"C:\FolderA\FolderB\FileA "&%Mydate%&".xlsx" /T 

Was sind die Regeln auf Zeichen und Variablen und Anführungszeichen in Batch verketten? Wie Debuggen im Stapel mit Notepad?

+0

Warum verwenden Sie DOS? – Radmation

+2

Ich denke, Sie meinen Windows-Eingabeaufforderung (cmd.exe) statt MS-DOS. Sie können keine Dateinamenerweiterungen> 3 Buchstaben in MS-DOS haben, sodass Sie beispielsweise keine Datei namens something.xlsx erstellen konnten. –

+0

@Radmation: Weil es hier keine Alternative gibt – ProtoVB

Antwort

4

?

/exp:"C:\FolderA\FolderB\FileA "&%Mydate%&".xlsx" /T 

?

Dies ist nicht cmd Syntax. Verwenden Sie den Befehl set, um eine Variable festzulegen. Auch zu verketten, müssen Sie nicht (sprich: darf nicht) so etwas wie Verkettung Symbole verwenden:

set "var=C:\FolderA\FolderB\FileA %Mydate%.xlsx" 

(was /exp: oder /t tun soll - es funktioniert nicht in cmd)

zu Benenne eine Datei um, verwende ren (oder die Langform rename). Um Hilfe zu einem Befehl zu erhalten, verwenden Sie command /?, z. rename /?

+0

Vielen Dank für Ihren Beitrag, ich kannte diese Regeln nicht (keine Verwendung von Verkettungssymbolen, Anführungszeichen .. .) Ich bin immer noch daran interessiert, ein solches Skript zu debuggen (Zeile für Zeile). – ProtoVB

+1

'Batch' ist sehr einfach. Das Debuggen erfolgt grundsätzlich manuell mit 'echo' und' pause' – Stephan

+0

Das ist gut genug; danke – ProtoVB