2017-02-22 10 views
2

Ich bin ziemlich neu in der Batch-Programmierung. Ich habe das hier erwähnte Programm here im Teil der angenommenen Antwort von "Makecab" gefunden. Ich füge es hier ein:Semikolons am Anfang der Zeile - Batch

;@echo off 

;;;;; rem start of the batch part ;;;;; 
; if "%~2" EQU "" (
; echo invalid arguments.For help use: 
; echo %~nx0 /h 
;) 
;for %%a in (/h /help -h -help) do ( 
; if "%~1" equ "%%~a" (
;  echo compressing directory to cab file 
;  echo %~nx0 directory cabfile 
;  echo to uncompress use: 
;  echo EXPAND cabfile -F:* . 
; ) 
;) 
; 
; set "dir_to_cab=%~f1" 
; 
; set "path_to_dir=%~pn1" 
; set "dir_name=%~n1" 
; set "drive_of_dir=%~d1" 
; set "cab_file=%~2" 
; 
; if not exist %dir_to_cab%\ (
; echo no valid directory passed 
; exit /b 1 
;) 

; 
;break>"%tmp%\makecab.dir.ddf" 
; 
;setlocal enableDelayedExpansion 
;for /d /r "%dir_to_cab%" %%a in (*) do (
; 
; set "_dir=%%~pna" 
; set "destdir=%dir_name%!_dir:%path_to_dir%=!" 
; (echo(.Set DestinationDir=!destdir!>>"%tmp%\makecab.dir.ddf") 
; for %%# in ("%%a\*") do (
;  (echo("%%~s#" /inf=no>>"%tmp%\makecab.dir.ddf") 
; ) 
;) 
;(echo(.Set DestinationDir=!dir_name!>>"%tmp%\makecab.dir.ddf") 
; for %%# in ("%~f1\*") do (
;  
;  (echo("%%~s#" /inf=no>>"%tmp%\makecab.dir.ddf") 
; ) 

;makecab /F "%~f0" /f "%tmp%\makecab.dir.ddf" /d DiskDirectory1=%cd% /d CabinetNameTemplate=%cab_file%.cab 
;del /q /f "%tmp%\makecab.dir.ddf" 
;exit /b %errorlevel% 

;; 
;;;; rem end of the batch part ;;;;; 

;;;; directives part ;;;;; 
;; 
.New Cabinet 
.set GenerateInf=OFF 
.Set Cabinet=ON 
.Set Compress=ON 
.Set UniqueFiles=ON 
.Set MaxDiskSize=1215751680; 

.set RptFileName=nul 
.set InfFileName=nul 

.set MaxErrors=1 
;; 
;;;; end of directives part ;;;;; 

Welchen Unterschied macht es, die Semikola am Anfang jeder Zeile zu verwenden? Auch einige Zeilen haben mehr als ein Semikolon, warum ist das so?

Antwort

3

Das Semikolon ist ein Standard-Trennzeichen in Batch-Dateien - zusammen mit <space>, <tab>, =, ,. Für die Batch-Datei bedeutet das Leerzeichen.

Aber das ist eine Art polyglot Skript - es ist auch eine gültige makecab directive wo die ; bedeutet einen Kommentar. Es ist so, um IO-Operationen zu reduzieren und das Skript ein wenig schneller zu machen und zu vermeiden, nicht so einfach zu lesen Zeilen so viel wie möglich. Einige Zeilen haben mehr Semikolons, um die echten Kommentarzeilen hervorzuheben.

gleicher Trick kann auch der Batch Code kompliziert wird, um in diesem Verfahren mit reg files

+0

verwendet werden, die Schaffung der MakeCab Richtlinien zu machen einfache Datei; Es gibt jedoch viele Batch-Leute, die durch diesen Trick verwirrt werden und nur wenige MakeCab-Benutzer, die dies zu schätzen wissen. IMHO die Erstellung der Direktiven-Datei über Standard-Batch-Code wäre die richtige Wahl ... – Aacini

0

Ich habe nur Batch-Programmierung für die Durchführung einfacher Funktionen berührt, so kann ich falsch liegen, aber ich habe nie mit Semikolons am Anfang einer Zeile gestoßen. Ich nehme an, dass dies getan wurde, um die Zeilen im Wesentlichen zu kommentieren. Wenn ich Sie wäre, würde ich mich nicht darauf konzentrieren, während Sie weiterhin mit Batch-Dateien programmieren.

Verwandte Themen