Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Невыполняеться команда cd и старт в скрипте после popd (http://forum.oszone.net/showthread.php?t=206702)

dark-------13 12-05-2011 11:46 1674834

Невыполняеться команда cd и старт в скрипте после popd
 
Здравствуйте, подскажите как заставить выполняться команду cd и start для запуска другого батника хотя бы через 1.lnk , после команды popd
@echo off
set $SRC=D:\в го
set $DST=D:\в_М

pushd "%$SRC%"
for /f "tokens=*" %%i in ('dir /b *.txt') do (
for /f "tokens=1" %%j in ("%%~ti") do if "%%j"=="%date%" (
copy "%%i" "%$DST%\"
cry "%$DST%\%%i"
))
popd
cd "D:\test"
start 1.lnk

amel27 12-05-2011 12:36 1674895

dark-------13, попробуйте вместо команды CD использовать PUSHD, либо запускать CD с ключом /D
Код:

cd /d "D:\test"

dark-------13 12-05-2011 13:25 1674922

Нет не работает почему-то именно с приведенным выше скриптом --- что же в нем такого особенного ..... ?

ferget 12-05-2011 13:38 1674925

тогда может просто
"D:\Test\1.lnk"

dark-------13 12-05-2011 14:11 1674942

Не не работает наверное проблема в проге кот-я выполняет шифрование в консоли. Может от этого и не работают команды идущие после.

ferget 12-05-2011 14:14 1674943

а если паузу вставить пока шифрование выполняется

dark-------13 12-05-2011 14:43 1674954

Нет, все равно не выполняется

Foreigner 12-05-2011 17:13 1675030

dark-------13,
А d:\test существует?
У меня только одно предположение -- указаны не правильные пути
Попробуйте:
Код:

start "" "d:\test\1.lnk"

dark-------13 12-05-2011 18:12 1675075

d:\test существует другие батники работают как положено, этот не хочет после шифрования выполнять последующие команды - вообще ни какие ... шифрование делается сторонней программой от фирмы лан крипто , вот мне кажется это все из за нее хотя на 100 процентов не уверен т.к. в батниках не шарю.

ferget 12-05-2011 18:31 1675087

ОС у вас какая?

dark-------13 12-05-2011 18:33 1675091

XP pro corp sp2 32 битная

ferget 12-05-2011 18:48 1675103

в предыдущей теме:
В третью очередь выполняем отправку файлов по почте

может для этого использовать планировщик заданий

dark-------13 12-05-2011 18:50 1675106

Если по другому ни как, то его и буду использовать.

Foreigner 12-05-2011 19:08 1675116

dark-------13,
Тогда попробуйте запускать cry с помощью start:
Код:

start /b /w cry "" "%$DST%\%%i"
Или вообще:
Код:

start /b /w "" cmd /c cry "%$DST%\%%i"
Этот cry он консольный?

dark-------13 12-05-2011 22:09 1675227

да cry - консольная команда для программы шифрования, попробую и отпишусь сработало или нет

dark-------13 12-05-2011 23:15 1675270

Нет все таки не работает

Foreigner 12-05-2011 23:54 1675293

Файлы копируются? Шифруются? Еще раз проверьте пути в батнике. "D:\в го" и "D:\в_М" -- это так называются папки?

amel27 13-05-2011 05:25 1675364

dark-------13, чтобы не гадать:

- заменить 1-ю строку батника "@echo off" -> "@echo on"
- запустить батник из CMD-консоли с выводом в лог:
Код:

BATNIK.CMD >BATNIK.LOG 2>&1
- привести текст полученного лога BATNIK.LOG

dark-------13 13-05-2011 09:28 1675435

Вот лог

D:\test>set $SRC=D:\в го

D:\test>set $DST=D:\в_М

D:\test>pushd "D:\в го"

D:\в го>for /F "tokens=*" %i in ('dir /b *.txt') do (for /F "tokens=1" %j in ("%~ti") do if "%j" == "13.05.2011" (
copy "%i" "D:\в_М\"
cry "D:\в_М\%i"
) )

D:\в го>(for /F "tokens=1" %j in ("13.05.2011 08:12") do if "%j" == "13.05.2011" (
copy "Текстовый документ (2).txt" "D:\в_М\"
cry "D:\в_М\Текстовый документ (2).txt"
) )

D:\в го>if "13.05.2011" == "13.05.2011" (
copy "Текстовый документ (2).txt" "D:\в_М\"
cry "D:\в_М\Текстовый документ (2).txt"
)
Скопировано файлов: 1.
Encryption/Decryption program
Encrypting: D:\т_╠юёътє\╥хъёЄют√щ фюъєьхэЄ (2).txt %100, done

D:\в го>(for /F "tokens=1" %j in ("13.05.2011 08:12") do if "%j" == "13.05.2011" (
copy "Текстовый документ.txt" "D:\в_М\"
cry "D:\в_М\Текстовый документ.txt"
) )

D:\в го>if "13.05.2011" == "13.05.2011" (
copy "Текстовый документ.txt" "D:\в_М\"
cry "D:\в_М\Текстовый документ.txt"
)
Заменить D:\в_М\Текстовый документ.txt [Yes (да)/No (нет)/All (все)]: Скопировано файлов: 1.
Encrypting: D:\т_╠юёътє\╥хъёЄют√щ фюъєьхэЄ.txt %100, done

amel27 14-05-2011 13:09 1676170

dark-------13, странный этот CRY - после него не выполняется ни одна команда, его можно найти?

dark-------13 16-05-2011 07:58 1677101

amel27, в интернете не удастся найти описание команды cry т.к. эта специфическая команда выполняется в консоли только на машине с установленной консольной программой шифрования причем в инструкции к программе нет ни намека на то как после выполнения шифрования выполнять другие команды.
P.S.... счастье уже в том, что работает шифрование всех файлов в папке, хотя об этом в консольной инструкции (-help) тоже не было написано ... наверное это особенность данной консольной программы, что после шифрования нельзя запустить другие команды (хотя странно это) ... попробую посмотреть еще раз правильность расположения скобок может в них проблема после вставки второго и третьего скриптов, может случиться чудо и все заработает ...... ?!

amel27 16-05-2011 08:24 1677111

dark-------13, проверить можно без цикла:
Код:

cry "D:\в_М\Текстовый документ.txt"
start "" notepad

до кучи еще два варианта:
Код:

call cry "%$DST%\%%i"
Код:

cmd /c call cry "%$DST%\%%i"

dark-------13 16-05-2011 15:16 1677291

Спасибо вам amel27 все заработало при использовании call cry "%$DST%\%%i"


Время: 17:52.

Время: 17:52.
© OSzone.net 2001-