ผมทำอะไรผิดหรือเปล่า?
คุณต้องล้อมรอบสุดท้าย echo
กับ (
และ )
(echo %t%) > paths.txt
ไฟล์แบตช์ที่ถูกต้อง (test.cmd):
@echo off
setlocal
set t=%PATH:;=^&echo.%
echo %t%
(echo %t%) > paths.txt
:endendlocal
ตัวอย่างการใช้งาน:
> test
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\apps\WSCC\Sysinternals Suite
C:\apps\WSCC\NirSoft Utilities
C:\apps\Calibre\
C:\apps\Git\cmd
C:\apps\Git\mingw64\bin
C:\apps\Git\usr\bin
C:\apps\nodejs\
C:\Users\DavidPostill\AppData\Roaming\npm
> type paths.txt
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\apps\WSCC\Sysinternals Suite
C:\apps\WSCC\NirSoft Utilities
C:\apps\Calibre\
C:\apps\Git\cmd
C:\apps\Git\mingw64\bin
C:\apps\Git\usr\bin
C:\apps\nodejs\
C:\Users\DavidPostill\AppData\Roaming\npm
ทางออกที่ง่ายกว่า
การแก้ปัญหานี้ไม่จำเป็นต้องใช้วงเล็บในเส้นทางที่จะหลบหนี
test.cmd:
@echo off
setlocal
for %%i in ("%path:;=";"%") do (
echo %%~i >> paths.txt
)
:endendlocal
และจากบรรทัดคำสั่ง:
for %i in ("%path:;=";"%") do echo %~i >> paths.txt
อ่านเพิ่มเติม
At this moment \Java\jdk1.6.0_39\bin\ was unexpected
(คิดว่ามันพูดในภาษาโปแลนด์และฉันไม่แน่ใจว่าข้อความต้นฉบับมีลักษณะอย่างไร) ฉันมี `C: \ Program Files (x86) \ Java \ jdk1.6.0_39 \ bin` บน 3 บรรทัดในตัวแปรถ้าช่วยได้