Bagaimana saya bisa menjalankan banyak perintah di commandline Windows hanya dengan satu baris?
Jadi misalnya katakan saya ingin melakukan pembaruan SVN dan kemudian salin semua file ke lokasi lain ...
svn update; copy *.* c:\development\copy\
Jelas itu tidak berhasil. Apakah ada karakter atau pembatas seperti ';' untuk melakukan sesuatu seperti ini?
windows
command-line
T. Stone
sumber
sumber
&
dan&&
hanya bekerja di Windows 'cmd.exe
- yang bukan DOS.Setidaknya di MS-DOS 6.22 saya menggunakan kunci Ctrl+ Tuntuk mendapatkan semacam simbol paragraf. Ini bekerja seperti yang &disebutkan oleh Phoshi. Namun ini hanya akan berfungsi, jika Anda menjalankan doskey.exe.
sumber
Jika Anda ingin menjalankan beberapa perintah dengan 1 baris, di mana Anda memulai perintah dengan
start
, misalnya, jika Anda ingin menjalankan perintah seperti ini:Kemudian, Anda perlu melakukannya dalam 2 langkah (solusi satu baris ada di akhir jawaban ini).
Pertama, tulis perintah ke file batch sementara (dalam hal ini, Anda dapat menggunakan
&
atau&&
):Perhatikan bahwa Anda perlu "melarikan diri" masing-masing
"&"s
(ampersand) dengan tanda"^"
agar mereka diperlakukan sebagai karakter biasa dalamecho
perintah. Atau, Anda dapat membuat file batch sementara dengan editor teks, seperti Notepad.Kemudian, gunakan
start
untuk memulai file batch:Jika Anda ingin
start
menunggu file batch selesai (setelahpause
diberhentikan), sebelumstart
selesai, maka Anda perlu menambahkan/w
saklar kestart
perintah:Anda dapat menggabungkan semua ini dalam satu baris dan bahkan menghapus (menghapus) file batch sementara (
foobar.cmd
):Perhatikan bahwa jika Anda akan menghapus file batch sementara, Anda harus menjalankan
start
dengan/w
switch, jika tidak, file batch sementara mungkin akan dihapus sebelum memiliki kesempatan untuk dijalankan.sumber
/w
orang bisa tidur sebentar sebelum menghapus file.timeout 2
akan melakukannya, misalnya.Jika Anda ingin membungkus perintah pertama dengan if tetapi tetap ingin perintah kedua dijalankan, maka Anda harus membungkus if dengan cmd / c juga seperti ini:
cmd / c jika ada abc. (rd / q abc) & echo halo
Jika Anda tidak mengawali if dengan cmd / c maka seluruh perintah menjadi bagian dari if (yang mungkin tidak Anda inginkan).
sumber
(if exist abc. command₁) & command₂
start "" cmd /c "(command₁) & (command₂)"
sah tidak dijawab di mana pun di web tetapi merupakan satu-satunya cara untuk menautkan sebagian besar pernyataan bets. Selamat untukmu.if
tetapi masih ingin perintah kedua untuk dieksekusi tanpa maka Anda harus membungkusif
dengancmd /c
juga", dan saya menjawab dengan cara melakukannya tanpacmd /c
. Jadi mengapa Anda mengatakan bahwa satu-satunya cara untuk menautkan sebagian besar pernyataan batch menggunakancmd /c
? Dan mengapa Anda melemparstart
ke dalam campuran?Ya gunakan
&
!%command1% & %command2%
menjalankan kedua perintah%command1% && %command2%
menjalankan perintah pertama, jika berhasil jalankan perintah kedua%command1% || %command2%
menjalankan perintah pertama, jika gagal jalankan perintah detikLihat di sini
sumber
&
,,&&
dan||
sebenarnya bukan perintah, itu bagian dari batch. Bukan perintah.%command%
dapat mengeksekusi string itu sebagai perintah, terlihat di siniSaya menemukan bahwa menggunakan 'MULAI' memperbaiki beberapa perintah (saya menjalankan Windows 10 Home). Sebagai contoh:
sumber
&
, bukanstart
!start
?buat file batch dengan nama pendek yaitu bat.bat .
dan seterusnya ke 9 baris dan simpan
lalu gunakan dengan tanda kutip ganda
cmd /c
akan menjalankan setiap perintah dan mematikan untuk baris berikutnya tidak mengatakan ini lebih baik dari && Hanya saja itu mudah.sumber