Menang 7 - Masalah batch, tidak suka spasi dalam nama folder

0

Anda harus memaafkan saya (atau tidak) pengetahuan saya tentang pemrograman batch cukup sederhana.

Saya telah membuat beberapa file batch untuk membantu meluncurkan game, mengubah variabel sistem (untuk memindahkan game yang disimpan di dalam folder game) pada dasarnya membuatnya portabel.

Ini bekerja ketika berada di dalam folder tanpa spasi di jalan. Namun ketika dimasukkan mengatakan, Program Files (x86) itu jatuh.

Berikut adalah kode yang saya gunakan untuk mendapatkan jalur induk relatif.

for %%B in (%~dp0\.) do set APPPATH=%%~dpB

Ini adalah bagian penting, semua yang lain dalam skrip bergantung pada ini.

Inilah sisanya:

: Get path of parent folder (relative)
for %%B in (%~dp0\.) do set APPPATH=%%~dpB
set APPPATH2=%APPPATH%Microsoft Games\Freelancer\

: Modify path of Freelancer in the registry to point to the portable install
REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft Games\Freelancer\1.0" /v AppPath /t REG_SZ /d "%APPPATH2%\" /f

: Set path for Saved Games
Set USERPROFILE=%APPPATH%

: Start Freelancer up
START "" "%APPPATH%Microsoft Games\Freelancer\EXE\Freelancer.exe"

Mungkinkah kode ini dimodifikasi agar dapat menangani spasi dalam skrip? Saya telah berhasil mengatur template saya sehingga tidak mempengaruhi hal lain, tetapi bagian dari jalur ini adalah tempat ia jatuh.

Saya menggunakan variabel APPPATH untuk menampilkan path lengkap relatif ke mana pun file berada di komputer.

Terima kasih untuk bantuannya!

Ctrlaltdenied
sumber
Harap ingat untuk menambahkan tag OS ke pertanyaan Anda sehingga orang tahu apa hubungannya OS.
Julian Knight
Cara Anda melakukan komentar dalam batch adalah dengan REM atau dengan fungsi ::titik dua Anda tetapi tidak sesuai dengan yang Anda pikirkan. Anda sebenarnya telah membuat label. Jadi Anda bisa membuat goto ke label yang Anda buat! Untuk membuktikannya, coba jalankan file batch ini pastebin.com/raw.php?i=cJ0P7JSC
barlop
Terima kasih Barlop, saya melihatnya di kode lain untuk tujuan yang sama jadi saya salin, terima kasih atas informasinya!
Ctrlaltdenied

Jawaban:

1

Sudahlah orang-orang, jawabannya tampak sederhana, saya kadang-kadang memukul kepala sendiri.

: Get path of parent folder (relative)
for %%B in (%~dp0\.) do set APPPATH=%%~dpB

Untuk:

: Get path of parent folder (relative)
for %%B in ("%~dp0\.") do set APPPATH=%%~dpB

(merangkum jalan dengan kutipan)

Masalah terpecahkan (Gah!)

Ctrlaltdenied
sumber
Jangan lupa untuk menerima jawaban Anda sendiri - saya pikir Anda harus menunggu 24 jam.
Julian Knight