Jak pozbyć się właśnie tego “c:\user\Cycu\pulpit\cel” bo chcę w końcu skopiować plik o 1 folder wyżej nie zależnie gdzie będzie to całe drzewko “/cel/program/plik_do_skopiowania”. Nie wiem czy dobrze napisałem kod.
batch read files - 53 mln wyników w google, w czym jest problem bo nie widzę sensu kopiowania wiedzy zapisanej na innych forach, manualach czy tutorialach z batch
np.
Create a shortcut to the .BAT or .CMD file. To do so, right click on the file, click Send To, Desktop (create shortcut)
@echo off
for /f "tokens=1" %%i in (config.txt) do (
set w1=%%i
)
for /f "tokens=2" %%j in (config.txt) do (
set w2=%%j
)
for /f "tokens=3" %%k in (config.txt) do (
set w3=%%k
)
for /f "tokens=4" %%l in (config.txt) do (
set w4=%%l
)
echo.
echo %w1%
echo %w2%
echo %w3%
echo %w4%
echo.
pause>nul
Ten skrypt teoretycznie powinien wyświetlić wszystkie te nazwy z pliku config.txt ale pokazuje tylko 1 a reszta to ECHO jest wyłączone. Jak to ominąć?
Nie prawda ten skrypt nie ma prawa wyświetlić to o czym piszesz.
tokens=3 oznacza że z linijki
a b c d e
wybierze wartość “c” (spacja jest chyba default delimiters ale radzę sprawdzić w maunalu)
jak ze swojego skryptu usuniesz 2, 3 i 4 for to wynik nie zmieni się.
Na szybko napisałem coś takiego:
@echo off
setlocal EnableDelayedExpansion
set _tst=0
for /f "tokens=1" %%i in (config.txt) do (
IF !_tst! == 0 set w1=%%i
IF !_tst! == 1 set w2=%%i
IF !_tst! == 2 set w3=%%i
IF !_tst! == 3 set w4=%%i
set /a _tst+=1
)
echo %w1%
echo %w2%
echo %w3%
echo %w4%
pause>nul
średnio to ładne ale działa.
W batch pisze bardzo sporadycznie więc jak ktoś ma lepszą propozycję to też chętnie zobaczę.