[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 04/09 05:32 / Filesize : 301 KB / Number-of Response : 1052
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【.cmd】 バッチファイルスクリプト %12 【.bat】



1 名前:デフォルトの名無しさん mailto:sageteoff [2017/03/11(土) 13:47:11.66 ID:2LSSeyH1.net]
拡張子が .cmd または .bat のバッチファイルのスクリプティング(プログラミング)に関わる
質問,テクニック(JScript,Perl等の埋め込みなど含む),関連情報のためのスレです。

※何でも無理矢理バッチでやろうとせず、WSH等の使用も検討しましょう。
前スレ
【.cmd】 バッチファイルスクリプト %11 【.bat】©2ch.net
echo.2ch.net/test/read.cgi/tech/1424858999/

それ以前の過去スレ
%10 peace.2ch.net/test/read.cgi/tech/1374205515/
%9  toro.2ch.net/test/read.cgi/tech/1335015478/
%8  toro.2ch.net/test/read.cgi/tech/1315844420/
%7  hibari.2ch.net/test/read.cgi/tech/1298873550/
%6  hibari.2ch.net/test/read.cgi/tech/1277465356/
%5  pc12.2ch.net/test/read.cgi/tech/1242268171/
%4  pc12.2ch.net/test/read.cgi/tech/1229955189/
%3  pc11.2ch.net/test/read.cgi/tech/1217860043/
%2  pc12.2ch.net/test/read.cgi/tech/1197881068/
%1  pc11.2ch.net/test/read.cgi/tech/1178281991/

116 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 02:44:43.86 ID:mwCfh4Ih.net]
質問があります。
ちょっと事情があってすべての引数をダブルクオーテーションで囲って実行しなければならなくなりました。
例えばこんな感じで

"C:\Software\ffmpeg\ffmpeg.exe" "-i" "%~1" "-vcodec" "utvideo" "-acodec" "pcm_s16le" "%~dpn1_test.avi"

ffmpegでは正常に動くことを確認したのですが他の一般的なソフトウェアもこのような起動方法で動作すると考えてもいいのでしょうか?

117 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 03:37:58.17 ID:QCoLM9eW.net]
引数の仕様はそれぞれだが問題無い

118 名前:デフォルトの名無しさん mailto:sage [2017/07/05(水) 22:31:01.85 ID:9GxT9B4i.net]
とあるファイルの中身の文字列を置換したいのですが、何かいい方法はありますでしょうか?
とあるファイルはtxtファイルではないですが、テキストエディタで開くと文字列が書いてあります。

119 名前:デフォルトの名無しさん mailto:sage [2017/07/05(水) 22:46:04.03 ID:R8zuGv9z.net]
全部テキストならともかくそれ以外のバイナリファイル内の置換はcmdじゃ無理だろ
WSHとかPower Shellとかで探せ

120 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 00:29:11.58 ID:l/JVwvz3.net]
テキストファイルだけど、拡張子がtxtではないファイルのことです

121 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 01:41:06.31 ID:vizsBHcK.net]
findstr である程度のことはできるけど、置換の条件とかが複雑になってくるとしんどい。
外部コマンドが使用可能なら、onigsedとか、SEDを使った方が多少は楽。

122 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 02:34:32.14 ID:VUvDmuBp.net]
>>119
拡張子になんの意味があると思ってるの?
なんかそのレベルの知識だったら、メモ帳でも使った方がいいと思うよ。

123 名前:デフォルトの名無しさん mailto:sage [2017/07/07(金) 17:03:51.39 ID:peDYPYbs.net]
>>119
ren Nullpo.unko Nullpo.txt

124 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 19:10:43.21 ID:Gxva3cTk.net]
バッチファイルからシリアルポートを簡単に読み書き出来る手段って無いですかね?
古くはCOM?を使う方法が有名ですがBluetoothなどで作られた仮想シリアルポート?には使えないようです



125 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 00:28:41.39 ID:m+WJUz/m.net]
シリアルポートってなんだ?RS-232Cとかか?

126 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 00:45:21.62 ID:CfPNRtgi.net]
>>123
232C→USB変換ケーブルみたいなのあったような

127 名前:デフォルトの名無しさん mailto:sage [2017/07/16(日) 11:23:45.75 ID:FHjtOHLZ.net]
そもそもバッチファイルって何?
CでもBasicでもなく、メモ帳の拡張子をbatに変えるだけで良くて、
コマンドブロンプトとかいう、MS-DOSと何が違うのかわからないような画面で動いて、
何なの?

128 名前:デフォルトの名無しさん mailto:sage [2017/07/16(日) 15:58:56.60 ID:30vHB81v.net]
CだってBASICだってメモ帳の拡張子を適当に変えれば行けますよ

129 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 02:02:06.89 ID:Bi+xDIbE.net]
「拡張子とは何か」から始めとけ

130 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 09:43:40.29 ID:YNdL6SIO.net]
>>126
>メモ帳の拡張子をbatに変える

notepad.exeの拡張子をbatに変えたら動かなくなりますよ

131 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 12:15:15.33 ID:+17jTjCv.net]
>>129
なんでメモ帳って書いてあるのにnotepad.exeをいじるわけ?

132 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 12:23:23.94 ID:lxnTGpj5.net]
そらメモ帳の実体はnotepad.exeやし

133 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 19:54:35.52 ID:qQbuN+bc.net]
>>130
お前の言う「メモ帳」とはnotepad.exeでない何か他のものなのか?

134 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 20:32:10.68 ID:wtRY8Rgw.net]
もう夏休みか



135 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 23:42:51.89 ID:Wjn/rMX6.net]
揚げ足の取り方が寒い。

136 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 00:03:00.46 ID:oeGL8Gu+.net]
>>126についていうなら、その辺のいい加減さが理解を妨げてると言える

137 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 00:19:58.81 ID:wIP5zHZ/.net]
とにかく>>126は色々とおかしい
どこから突っ込めばいいのかわからんくらいにアチコチおかしい

PC初心者板ならともかく、なぜム板にこんな人が居るんだ?ってレベル
迷い込んできたのか?

138 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 00:23:24.87 ID:I6a60LYe.net]
しかし誰もきちんと説明できないという

139 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 02:27:06.77 ID:Gwnbk1WK.net]
どこから説明始めたらいいのかわからん程だし

140 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 21:02:00.27 ID:WMMf4PqS.net]
説明はできないが

141 名前:揚げ足は取れる、ということですね。 []
[ここ壊れてます]

142 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 22:27:12.79 ID:caLBuZR5.net]
コピー系コマンドのコピー速度って

遅 copy < xcopy < robocopy 早

で良いですよね?
これはVista、7、10のどのOSでも同じでしょうか?

143 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 23:32:30.26 ID:I6a60LYe.net]
copyの方が早くね?4文字だし。

144 名前:140 mailto:sage [2017/07/20(木) 03:04:39.26 ID:R4lBeVK+.net]
>>141
コマンド打ち込むにも時間がかかりますから一理ありますね。copyは引数指定も直感的だし…


って常にコマンド手打ちする訳でもないですし!w



145 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 00:59:36.62 ID:J1O+P69V.net]
+.bat や ,.bat もOKだった

146 名前:デフォルトの名無しさん mailto:sage [2017/07/22(土) 21:18:13.40 ID:yBUCBb6t.net]
プラスバッドって、何か格好いいな。
カンマバットはダセェけど。

147 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 16:18:49.88 ID:sxzHAQSA.net]
では、
£.bat
γ.bat

ラプラスバットと、ガンマバットでは、どうだろう?

148 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 01:24:32.19 ID:ocuZvBLs.net]
@.bat や =.bat
ファイルを作ることはできるが、実行しようとしてもコマンドプロンプトに無視されて実行できなかった

149 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 02:07:03.67 ID:0L2d7SO5.net]
@.bat はフルパスで C:\work\@bat ってするか、キャレットでエスケープして ^@.bat で実行できる
=.bat はフルパスでもダメだけど、キャレットでエスケープすればいける

150 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 00:45:45.45 ID:7i1X54Qd.net]
>>147
キャレットって何かわからなかったが、^をつけることなんですね
^@ や ^= でたしかに実行できました

151 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 19:56:28.38 ID:gQNT5BPl.net]
(^_^)

152 名前:デフォルトの名無しさん mailto:sage [2017/08/10(木) 21:54:16.62 ID:BFQhJ/Te.net]
"@ とか "= とか

153 名前:デフォルトの名無しさん mailto:sage [2017/08/14(月) 22:38:23.70 ID:3xlVGOet.net]
すみません助けてください
遅延関数を宣言してるところから、下記の親ディレクトリの名前だけ引くサブルーチンに
ファイルフルパス投げて、戻そうとしているのですが
for文のところでDEST_DIRに値が入らなくて困っています

windows7環境で遅延関数について調べているのですが
なんで値が入らないのかわからず。 %%Pをechoすると中身が表示されるのですが
それをSETするときに何をやっても入りません。。。助けてください

:GET_PARENTDIR
setlocal enabledelayedexpansion

SET PathLF=%1
SET PathLF=%PathLF:~0,-1%

SET PathLF=!PathLF:\=^

!

for /F %%P in ("!PathLF!") do SET DEST_DIR = %%P
endlocal && set DEST_DIR = %DEST_DIR%
echo %DEST_DIR%

exit /b

154 名前:デフォルトの名無しさん mailto:sage [2017/08/14(月) 22:39:38.44 ID:3xlVGOet.net]
ああああ遅延変数でした
もうやだああぁ



155 名前:デフォルトの名無しさん mailto:sage [2017/08/14(月) 23:55:08.58 ID:pZiLFUe+.net]
>>151
これって例えばc:\aaa\bbb\ccc\test.txtってファイルを投げたら
最終的にtest.txって文字を得たいの?
cccを得たいの?

156 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 02:10:26.85 ID:F71LHla5.net]
>>151
まずは

SET DEST_DIR = %%P
endlocal && set DEST_DIR = %DEST_DIR%

の空白がいけないのでは?

SET DEST_DIR=%%P
endlocal && set DEST_DIR=%DEST_DIR%

157 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 08:22:11.69 ID:ltV5IdSe.net]
>>154
後輩にその空白を入れられたことがある
「可読性を良くしようと思って…」って言ってたな
普通の高級言語やってる奴は=の前後に空白入れただけで不具合起こるなんて考えもしないわな
コマンドプロンプトはホント昔の仕様を引きずり過ぎだわ

158 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 08:51:21.42 ID:J2u+qflL.net]
setlocal enabledelayedexpansion使うとファイル名に!が入ってるとめんどくさいから極力使わないようにしてるんだけど俺だけ?みんなはどうしてる?

159 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 08:55:13.27 ID:GzAS59pw.net]
>>155
C言語で言うマクロ置換みたいなもんだからしょうがない
もう新規の奴はPowerShellに移行するしかない

160 名前:デフォルトの名無しさん mailto:sage [2017/08/15(火) 10:13:39.94 ID:x5EZUuTK.net]
名前ソートで上に持ってきたいフォルダには名前の頭に!をつけてる

161 名前:デフォルトの名無しさん mailto:sage [2017/08/17(木) 23:34:26.73 ID:jGLnJoZN.net]
スペースが入ったファイル名からスペースを取り除くには一行では無理ですか?

162 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 00:59:25.98 ID:Oq4EZT3J.net]
こんな感じ?
set "File=%~1" & ren "%File%" "remove=%File: =%"

163 名前:デフォルトの名無しさん mailto:sage [2017/08/18(金) 01:00:23.41 ID:Oq4EZT3J.net]
間違えた
set "File=%~1" & ren "%File%" "%File: =%"

164 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 03:39:45.42 ID:w/lVOYHU.net]
バッチでよく使う pslist.exe はプロセス名が日本語だと間違える
pslist v1.4 sysonternals



165 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 16:32:29.32 ID:7nn0chG1.net]
フォルダD:\XXXX直下の、
AAAA、BBBB、CCCCの3つの隠しファイル(拡張子なし)を、
定期的にE:\backupフォルダにバックアップするためのバッチファイルを作りたい
フォルダXXXX以下には、YYYY、ZZZZというフォルダがあり、
この下にもAAAA、BBBB、CCCCと同名のファイルが存在するが、
それはバックアップしなくていい
copyコマンドでは隠しファイルはコピーできない
xcopyコマンドではサブディレクトリ以下の同名ファイルもコピーされてしまう
バッチファイルで処理するためにはどうすればいいのでしょうか?
できればアトリビュートはいじりたくないです
よろしくお願いいたします

166 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 16:35:22.92 ID:T95gEh5X.net]
>>161
誰もツッコミ無しなの?

167 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 16:53:03.09 ID:vBwVL8I3.net]
>>163
xcopyでAAAAなどのファイルを一つずつ指定してコピーするというのは?

168 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 17:25:05.34 ID:7nn0chG1.net]
>>165
実験してみたんですが、
xcopy D:\XXXX\AAAA E:\backup\
とすると、backupフォルダには、
AAAA
\YYYY\AAAA
\ZZZZ\AAAA
の3ファイルがコピーされちゃうんですよ
\YYYYと\ZZZZのはいらないのでどうしたもんかなと質問させていただきました

169 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 17:36:31.70 ID:vBwVL8I3.net]
>>166
こちらの方でもテストしたけど1ファイルだけコピーになるんだけどな
なんでだろ

170 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 17:43:47.57 ID:7nn0chG1.net]
>>167
テストありがとうございます
あれ?
なんか余計なスイッチ入れるとかしちゃってたかな?
今出先なんで帰ったら再度実験してみます

171 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 19:15:30.58 ID:T95gEh5X.net]
>>161
cd /d "%~dp1" & set "File=%~nx1" & call ren "%%File%%" "%%File: =%%"

>>163
cd /d "D:\XXXX"
for %%i in (AAAA BBBB CCCC) do xcopy /h /y "%%~i" "E:\backup"

172 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 19:19:28.49 ID:rIu52qT/.net]
以前こちらで聞いて試行錯誤しているのですが、何分初心者で四苦八苦しております。
そこでご教授願いたいのですが、
@rem 引数有無と引数名チェック
if "%USR_INPUT_STR1%"=="" goto ERROR
echo;%USR_INPUT_STR1%|findstr /R /C:"^http" /C:"openrec" >NUL||(echo "%1" を処理できません) && goto ERROR

@rem URLのアドレスとHTMLを環境変数へ設定
set ADDR=%USR_INPUT_STR1%
for %%I in (%USR_INPUT_STR1%) do set HTML=%%~nxI

@rem HTMLダウンロード
curl -L --max-redirs 10 -R -O %ADDR%
if not %ERRORLEVEL%==0 goto ERROR

@rem HTMLから文字列抽出
for /F "tokens=2 delims=<>| " %%I in ('type %HTML%^|findstr /R /C:"<title>"') do set TITLE=%%~I
for /F "tokens=3 delims=, " %%I in ('type %HTML%^|find /I "m3u8"') do set TARGET=%%~I

ffmpeg -c copy "%TITLE%" -i

173 名前: "%TARGET%"
pause
exit

:ERROR
echo 引数が無効のため処理できませんでした
pause
exit

このままだと、ファイル名がUTF-8で文字化けしてしまいます。
これを、面倒なのでファイル名で出力したいと思ったのですが、正規表現が弱く全く前に進みません。

丸投げで申し訳ございませんが、どうか手直ししていただけませんでしょうか。
よろしくお願い致します。
[]
[ここ壊れてます]

174 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 20:10:25.50 ID:uGuLhv+Q.net]
powershellに切り替えたら?



175 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 20:50:12.77 ID:1dHyDD35.net]
>>170
よく分からないけどbat自体をUTF-8で書いてchcp 65001というのは?

176 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 20:52:58.84 ID:rIu52qT/.net]
>>172
それも考えたのですが、不特定多数のPCで使う機会があるので手間が増えてしまうなと思い諦めました。
そこで、URLからIDとなる文字列を抽出してそれをファイル名に使おうと考えました。
参考URL:https://www.openrec.tv/live/7cuVKOAY3lv
この末尾の7cuVKOAY3lvの部分だけを、TITLEに代入したいと思ったのですが、思うようにいかなくて・・・。

177 名前:デフォルトの名無しさん mailto:sage [2017/08/22(火) 21:10:23.56 ID:rIu52qT/.net]
結局、実行batのディレクトリ内にnkf32を導入し、
nkf -s --overwrite %HTML%
と書き加えて対処致しました

178 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 14:35:48.67 ID:91TLAHUR.net]
フォルダの中に、あああ_1.flv あああ_2.flv … あああ_100.flvのようなファイルがあるときに、あああ_1.flvをあああ_001.flvのようにリネームしたりできないんでしょうか

179 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 15:34:02.29 ID:ZSKrJS0x.net]
>>175
Flexible Renamer

180 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 16:50:10.59 ID:iDduY4Qi.net]
お〜瑠璃ね〜むで十分やぞ
D&D用のショトカも作れるしな

181 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 17:11:24.47 ID:1aRkt9bd.net]
>>175
「のようなファイルがあるときに」の条件がどこまでかわからないが
>>176が一番早いのは間違いない

182 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 20:06:42.61 ID:KnTCuJQc.net]
set "a=あああ_"
set "b=.flv"
setlocal enabledelayedexpansion
for /L %%i in (1,1,99) do set /a c=%%i+1000 & ren "!a!%%i!b!" "!a!!c:~1!!b!"

183 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 16:38:58.30 ID:omILiWW+.net]
>>175
pushd "%~dp1"
:LOOP
for /f "tokens=1,2 delims=_" %%a in ("%~n1") do (
set FNAME=%%a
set /a FN=%%b+1000
)
ren "%~1" "%FNAME%_%FN:~-3%%~x1"
shift
if not "%~1"=="" goto :LOOP

184 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 17:02:31.64 ID:KsdTyPQv.net]
>>180
変換の数字の前が_文字じゃないかもしれないし
_文字がファイル名の中に混じっている可能性もあるし



185 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 17:53:19.91 ID:Vr+Gp9oD.net]
どのスレでも一緒だが質問の要件が分かりにくいのはめんどうだな

186 名前:デフォルトの名無しさん mailto:sage [2017/08/31(木) 18:00:47.56 ID:kMuf1wHV.net]
なんでか知らないけど他人に勝手にマルチポストされたけど>>175の質問は元のスレで解決したのでもういいです

187 名前:デフォルトの名無しさん mailto:sage [2017/09/03(日) 22:03:48.56 ID:BJjXydYg.net]
cd \
pushd D:\abc
setlocal
popd

としても元の \ に戻らなかった

188 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 00:02:37.80 ID:pBY/MKIa.net]
>>184
そうならなきゃ逆にダメでしょ
setlocalでは(親の環境を引き継いだ)別の環境の上で実行されている
カレントを移動しようが環境変数を操作しようが元の環境には影響しない
pushd D:\abc
setlocal
endlocal
popd
または
setlocal
pushd D:\abc
endlocal

189 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 01:15:44.81 ID:24unggVp.net]
>>185
ありがとうございました
そういうことでし

190 名前:たか []
[ここ壊れてます]

191 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 05:02:43.18 ID:cRJ1WDqm.net]
今さらバッチファイル入門て…
余計な被害者増やさずPowerShellにしろよ
これだからIT後進国は

超入門コマンドプロンプト:バッチコマンドで定型処理を行う (1/3) - @IT
www.atmarkit.co.jp/ait/articles/1709/15/news034.html
017年09月15日 05時00分 公開

192 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 05:59:12.53 ID:TbhIjs8j.net]
>>187
このスレのタイトル見てから言えよ
それとも、お前は、自分が使ってないソフトのスレ行って
「別のソフト使え」って言って巡るのが趣味なのか?

193 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 06:09:12.67 ID:NzFbxZfY.net]
PowerShellに移行しようと思ったこともあるけどファイルをD&D出来ないから断念した
あと他人の環境で動くのか分からないから渡しにくいし

194 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 06:11:20.82 ID:NzFbxZfY.net]
まあbatに面倒臭いとこがあるのも理解できるけど
せめて正規表現と小数の計算くらいはあればよかったんだが



195 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 11:00:27.02 ID:Nvo3nRRv.net]
自分で使うにはPoweShellはめちゃめちゃ便利だけど
一般的に定着してるかというとそうじゃないし

196 名前:デフォルトの名無しさん [2017/09/17(日) 11:17:50.05 ID:jtG62g+O.net]
PowerShell は起動が遅いから小さいバッチをループで呼び出すのには向いてないんじゃないかな。
いったんロードしたオブジェクトを関数形式で呼び出せばいいんだろうけどよくわからなくてめんどくさいし。

197 名前:デフォルトの名無しさん [2017/09/17(日) 11:23:06.30 ID:jtG62g+O.net]
最近、フリーソフトとかの小さいやつの管理がめんどくさくなって
メニュー代わりにバッチファイルを使うことにしたんですよ。
全部をVHDに入れてマウントなんで、持ち運びは仮想ディスクファイル1個をコピーするだけ。
起動が素早いのがメリット。
アイコンが出ないのがデメリット。
アイコン出そうと思ったら全環境で共通のドライブ名に固定してショートカットを使ったらいいと思うけど。

プログラムの入ったフォルダ
Program Files 3

バッチファイルの入ったフォルダ
Program Link

[FirefoxPortable.bat]
set pathname1=%~d0\Program Files 3\FireFoxPortable52.0.2\FirefoxPortable\FirefoxPortable.exe
start "" "%pathname1%"

198 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 12:31:00.83 ID:z++LvPT9.net]
それだけならバッチ作るまでもなくハードリンクにすればアイコン問題も解決では

199 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 12:37:46.24 ID:z++LvPT9.net]
あ、すまんそれだと実行ファイルと同じフォルダのDLL読めないからダメか

200 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 00:06:56.51 ID:AVBMNnfo.net]
短いファイル名に関していくつか質問

1 短いファイル名はダブルクオーテーションで囲まなくても実行可能?
2 短いファイル名は取得して一ヶ月経っても変動せずにそのパスを実行出来る?

201 名前:デフォルトの名無しさん mailto:sage [2017/09/18(月) 23:50:36.04 ID:2dThcY7y.net]
>>196
「1」は、多分可能
「2」は、他にファイルが出来なければが前提かと

「dir c:\*1」と「dir c:\*1 /x」を実行して挙動を確かめて下さい。

202 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 00:09:36.87 ID:I5t298fo.net]
少なくともNTFSではファイルの情報としてショートファイルネームも格納されるから
ファイルが存在したままある日突然名前が変わることはないはず

そのファイルを削除して似たようなロングファイルネームの別のファイルを作った時
同名だけど別のファイルが出来てしまう事はありえる

203 名前:196 mailto:sage [2017/09/19(火) 01:33:17.50 ID:FIGNw+kF.net]
レスありがとうございます。
ちなみに自分がやりたかったのは↓と同じケ

204 名前:ースで自作のbatをタスクスケジューラに登録したいというものでした。

schtasksで半角スペースを含むパスを実行させたい (DOSプロンプト活用相談室LOG)
http://fpcu.on.coocan.jp/dosvcmd/bbs/log/taskkillstart/at/4-0842.html

"を\"と書いてエスケープさせるやり方もあるようですがそちらではbatにダブルクォーテーションで囲った引数を渡すと不可解な動作をすることがあり上手くいきせんでした。

batのパスにスペースを含んだ場合 起動しない
batのパスにスペースを含まない場合 %~dp0を実行したときにbatのフォルダパスの頭にカレントディレクトリの文字列も追加される
[]
[ここ壊れてます]



205 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 02:17:59.79 ID:Lhe/hdFe.net]
mklinkやsubstを使って違う名前でアクセスするのはどうなのでしょう
うまくいくかどうかわかりませんが

ファイル名フォルダ名に空白や%^!みたいな記号があると困ることが多いですね

206 名前:デフォルトの名無しさん mailto:sage [2017/09/20(水) 03:12:37.88 ID:aIPv0JYK.net]
>>199
この書き方に準じていないだけでは?

A Scheduled Task Does Not Run When You Use Schtasks.exe to Create It and When the Path of the Scheduled Task Contains a Space
https://support.microsoft.com/en-us/help/823093/a-scheduled-task-does-not-run-when-you-use-schtasks-exe-to-create-it-a

Schtasks.exe を使用して、スケジュールされたタスクのパスにスペースが含まれている場合を作成するときにスケジュールされたタスクが実行されません。
https://support.microsoft.com/ja-jp/help/823093/a-scheduled-task-does-not-run-when-you-use-schtasks-exe-to-create-it-a

失敗例
schtasks /create /tn "my task" /tr "c:\foldername containing spaces\script.bat arguments" /sc once /sd 07/29/2003 /st 10:01

成功例
schtasks /create /tn "my task" /tr "\"c:\foldername name containing spaces\script.bat\" arguments" /sc once /sd 07/29/2003 /st 10:01

207 名前:196 mailto:sage [2017/09/20(水) 06:44:59.65 ID:w13Y3qRA.net]
>>201
自分の説明が下手で伝わらなかったんだと思いますが、成功例の方の記述でパスにスペースを含むbatは起動できるのですがそのbatにダブルクオーテーションを含む引数を渡すと動作がおかしくなるのです。
引数にダブルクオーテーションを含まない場合は正常に起動できます。

208 名前:196 mailto:sage [2017/09/20(水) 07:01:29.72 ID:w13Y3qRA.net]
一応追記しておくと、おかしくなるのはタスクスケジューラから起動した場合限定で通常の起動では問題ありません。
呼び出すbat内の記述にミスがあるとかそういうのではないと思います。

209 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 11:18:59.39 ID:WXZB4PjF.net]
%CMDCMDLINE%はどうなってる?

210 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 18:15:09.28 ID:X0F1M9Qy.net]
argumentにダブルクォーテションがある場合もパスと同様に\"してる?

211 名前:デフォルトの名無しさん mailto:sage [2017/09/21(木) 18:35:03.44 ID:uKBRYTKY.net]
test

212 名前:196 mailto:sage [2017/09/21(木) 18:38:58.99 ID:uKBRYTKY.net]
NGワードが含まれていたようなので他所に書きました
https://pastebin.com/9yMQfC37

213 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 20:04:30.28 ID:0vysq0yQ.net]
基本的に引数の中の半角スペースはデリミタであり
そこより左に " が奇数個あればデリミタじゃなくなる

それに関しては \" とか ^" とかあっても関係ないんじゃね

214 名前:デフォルトの名無しさん mailto:sage [2017/09/25(月) 14:27:46.65 ID:aNTDK6ge.net]
>>207
もう見てないかも知れないけど

schtasks /create /tn "test\test" /sc once /st 23:00 /tr "cmd /s /c \"\"C:\schtasks test\schtaskstest.bat\" hoge1 hoge2 \"ho ge3\" \"h oge4\"\""

これだと実行ファイルのパスにスペースがあっても問題ない



215 名前:196 mailto:sage [2017/09/26(火) 15:58:12.82 ID:dvSxVtoZ.net]
>>209
なるほど、直接batを登録するのではなくてcmdのほうを登録すれば良かったんですね
思いつ

216 名前:きませんでした
助かりました、ありがとうございます
[]
[ここ壊れてます]






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<301KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef