TOUCH eine Batch-Datei von sich

480
Joel A

Ich möchte, dass sich eine Batchdatei an ein beliebiges Datum / eine beliebige Uhrzeit anlegt. Ich habe es versucht...

touch.exe -xamq -t 201010201020 -- batch.cmd start /b "" cmd.exe /c "touch.exe -xamq -t 201010201020 -- batch.cmd" 

... und das Komische ist, wenn das Datum in Windows ausgeführt wird (Doppelklick), ändert sich das Datum nicht und cmd.exe hängt etwa eine Minute lang. Wenn ich es in einem cmd-Fenster starte, funktioniert es ganz gut, ohne zu hängen. Irgendwelche Ideen, was los ist?

0
Ist die Tatsache, dass die Stapeldatei aktiv ausgeführt wird, um zu verhindern, dass sich ihre Attribute ändern? In diesem Fall benötigen Sie einen zweistufigen Prozess, bei dem die Batchdatei A die Batchdatei B aufruft, den Namen A als Parameter übergibt und ** beendet, bevor ** die Datei A berührt. Eine Verzögerung in B ist möglicherweise erforderlich. DrMoishe Pippik vor 8 Jahren 0
Es ist in meinen Beispielen gesperrt, die unter Windows ausgeführt werden, jedoch nicht über die Befehlszeile. Wenn Sie von A nach B rufen, bleibt A geöffnet, denn wenn B beendet ist, gibt es eine Rückkehr zu A. Joel A vor 8 Jahren 0

1 Antwort auf die Frage

1
trigger

Zitate an falscher Stelle. Plus unnötige Umleitung.

start /b "" cmd.exe /c "touch.exe -xamq -t 201010201020 -- batch.cmd" 

Sie bitten CMD daher, den Explorer (Startbefehl) aufzufordern, CMD zu starten, um ein Programm auszuführen.

start /b "" cmd.exe /c "touch.exe" -xamq -t 201010201020 -- batch.cmd 

Besser

"touch.exe" -xamq -t 201010201020 -- batch.cmd 

Um dies in Windows zu tun ( copyohne ein Ziel aktualisiert das Dateidatum und% ~ 0 ist der Name des Schlägers)

set olddate=%date% set oldtime=%time% date 1/1/2010 time 5:15 copy "%~0",, date %olddate% time %oldtime% 

Batch-Dateien werden geöffnet, die nächste Zeile gelesen, dann für jede Zeile geschlossen und einmal herausgefunden, dass keine weiteren Zeilen vorhanden sind. Seltsames Zeug kann passieren, wenn ein laufender Schläger geändert wird.

& seperates commands on a line.  && executes this command only if previous command's errorlevel is 0.  || (not used above) executes this command only if previous command's errorlevel is NOT 0  > output to a file  >> append output to a file  < input from a file  | output of one command into the input of another command  ^ escapes any of the above, including itself, if needed to be passed to a program  " parameters with spaces must be enclosed in quotes  + used with copy to concatinate files. E.G. copy file1+file2 newfile , used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,,  %variablename% a inbuilt or user set environmental variable  !variablename! a user set environmental variable expanded at execution time, turned with SelLocal EnableDelayedExpansion command  %<number> (%1) the nth command line parameter passed to a batch file. %0 is the batchfile's name.  %* (%*) the entire command line.  %<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file.   \\ (\\servername\sharename\folder\file.ext) access files and folders via UNC naming.  : (win.ini:streamname) accesses an alternative steam. Also separates drive from rest of path.  . (win.ini) the LAST dot in a file path seperates the name from extension  . (dir .\*.txt) the current directory  .. (cd ..) the parent directory   \\?\ (\\?\c:\windows\win.ini) When a file path is prefixed with \\?\ filename checks are turned off.   < > : " / \ | Reserved characters. May not be used in filenames.    Reserved names. These refer to devices eg,   copy filename con   which copies a file to the console window.  CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4,   COM5, COM6, COM7, COM8, COM9, LPT1, LPT2,   LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9    Maximum path length 260 characters Maximum path length (\\?\) 32,767 characters (approx - some rare characters use 2 characters of storage) Maximum filename length 255 characters 
Danke Trigger für deine Eingabe. Sie haben recht mit dem seltsamen Verhalten. Keines Ihrer Beispiele funktioniert, wenn Sie im Explorer doppelt darauf klicken, aber beide funktionieren perfekt in einem Cmd-Fenster. Seufz, Windows! Joel A vor 8 Jahren 0
Sie müssen Ihre Frage mit mehr Daten bearbeiten. Führen Sie auch die Protokollierung in Ihrem Stapel aus (Echo% etwas% '). Geben Sie die genauen Dinge (Code, Variablen, Ordnerstruktur) an. Ich niesen - muss gehen. trigger vor 8 Jahren 0